diff options
Diffstat (limited to 'lisp/gnus')
61 files changed, 3563 insertions, 2002 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 2bdbfcc5c23..7bf4a6e01d6 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,62 +1,632 @@ +2015-01-27 Lars Ingebrigtsen <larsi@gnus.org> + + * nnir.el (nnir-imap-expr-to-imap): Check for literal+ capability in + IMAP. + +2015-01-27 Eric Abrahamsen <eric@ericabrahamsen.net> + + * nnir.el (nnir-run-imap): Enable non-ASCII IMAP searches. + + * nnmairix.el ("nnmairix"): Declare nnmairix as virtual. + + * gnus-bcklg.el (gnus-backlog-enter-article): No virtual groups should + be added to the backlog. + +2015-01-26 Trevor Murphy <trevor.m.murphy@gmail.com> + + * nnimap.el (nnimap-header-parameters): Refactor and request + X-GM-LABELS if it's been announced. + (nnimap-transform-headers): Gather and output GM-LABELS. + +2015-01-26 Peder O. Klingenberg <peder@klingenberg.no> + + * mm-decode.el (mm-display-part): Make non-string methods work. + Non-string methods are funcalled and work just fine, the test was + bogus. + * mm-decode.el (mm-display-external): Show "external" lisp viewers in + whole frame. + +2015-01-26 Lars Ingebrigtsen <larsi@gnus.org> + + * nnimap.el (nnimap-request-accept-article): Allow respooling using + nnimap. + + * gnus-group.el (gnus-group-get-new-news-this-group): Explicitly + request rescans when being run interactively. + + * nnimap.el (nnimap-request-group): Don't rescan the group here, + because that can be very slow in large groups. + + * gnus-int.el (gnus-request-group-scan): New backend function. + + * nnimap.el (nnimap-request-scan-group): Implement in on IMAP. + +2015-01-25 Lars Ingebrigtsen <larsi@gnus.org> + + * gnus-group.el (gnus-group-suspend): Close all backends. + +2015-01-15 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * nntp.el (nntp-send-authinfo): Error out if the password is wrong. + +2015-01-08 Stefan Monnier <monnier@iro.umontreal.ca> + + * registry.el: Don't use <class> as a variable. + +2014-12-29 Paul Eggert <eggert@cs.ucla.edu> + + * message.el (message-make-fqdn): + * nnvirtual.el (nnvirtual-retrieve-headers) + (nnvirtual-update-xref-header): Prefer (system-name) to system-name, + and avoid naming locals 'system-name'. + +2014-12-29 Lars Ingebrigtsen <larsi@gnus.org> + + * mm-decode.el (mm-shr): Bind `shr-width' to `fill-column' so that + lines don't get overlong when responding. + 2014-12-19 Andreas Schwab <schwab@linux-m68k.org> - * gnus-group.el (gnus-read-ephemeral-bug-group): Bind - coding-system-for-read and coding-system-for-write only around + * gnus-group.el (gnus-read-ephemeral-bug-group): + Bind coding-system-for-read and coding-system-for-write only around with-temp-file, and make buffer unibyte. Don't write temp file twice. -2014-11-26 John Mastro <john.b.mastro@gmail.com> (tiny change) +2014-12-18 Paul Eggert <eggert@cs.ucla.edu> + + * registry.el (registry-db): Set default slot later. + This is because its value is not a literal integer. + +2014-12-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * mm-util.el (mm-with-unibyte-current-buffer): Mark obsolete and + add warning. + + * gnus-art.el: Fix up compiler warnings. + (article-display-face, article-display-x-face): Remove unused `face'. + (gnus-article-browse-html-save-cid-content): Remove unused var `type'. + (article-date-ut): Remove unused var `first'. + (gnus-article-prepare): Remove unused var `gnus-article'. + (gnus-mime-save-part-and-strip): Remove unused var `param'. + (gnus-mime-inline-part): Remove unused vars `charset', `contents', and + `coding-system' along with corresponding dead code. + (gnus-mime-view-part-externally): Remove unused var + `mm-user-display-methods'. + (gnus-insert-mime-button): Let-bind gnus-tmp-id explicitly. + (gnus-display-mime): Remove unused var `handle'. + (gnus-mime-display-alternative): Remove unused var `props'. + (gnus-article-read-summary-keys): Remove unused var `up-to-top'. + (gnus-article-edit-done): Remove unused var `p'. + (gnus-url-mailto): Remove unused var `to'. + (gnus-treat-article): Let-bind gnus-treat-condition, part-number, + total-parts, and gnus-treat-type explicitly. Remove unused var `elem'. + +2014-12-18 Eric Abrahamsen <eric@ericabrahamsen.net> + + * registry.el (registry-db): Consolidate the :max-hard and :max-soft + slots into a :max-size slot. + (registry-db-version): Add new variable for database version number. + (registry-prune): Use :max-size slot. Accept and use a sort-function + argument. + (registry-collect-prune-candidates): Add new function for finding + non-precious pruning candidates. + (registry-prune-hard-candidates, registry-prune-soft-candidates): + Remove obsolete functions. + (initialize-instance): Upgrade registry version when starting. + + * gnus-registry.el (gnus-registry-prune-factor): Add new variable. + (gnus-registry-max-pruned-entries): Remove obsolete variable. + (gnus-registry-cache-file): Change default + filename extension to "eieio". + (gnus-registry-read): Add new function, split out from + `gnus-registry-load', that does the actual object reading. + (gnus-registry-load): Use it. Add condition case handler to check for + old filename extension and rename to the new one. + (gnus-registry-default-sort-function): New variable to specify a sort + function to use when pruning. + (gnus-registry-save, gnus-registry-insert): Use it. + (gnus-registry-sort-by-creation-time): Define a default sort function. + +2014-12-09 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-art.el (gnus-article-mime-handles): Refactor out into own + function for reuse. + (gnus-mime-buttonize-attachments-in-header): Adjust. + +2014-12-07 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * message.el (message-change-subject): Really check whether the subject + changed. + +2014-12-05 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * mailcap.el (mailcap-mime-data): Add doc-view-mode as a viewer for + PDFs. + (mailcap-view-mime): New function. + +2014-12-01 Glenn Morris <rgm@gnu.org> + + * gnus-cloud.el (gnus-cloud): Add :version tag. + +2014-11-29 John Mastro <john.b.mastro@gmail.com> (tiny change) * auth-source.el (auth-source-macos-keychain-search-items): Return result of `auth-source-macos-keychain-result-append' (bug#19074). -2014-11-10 Adam Sjøgren <asjo@koldfront.dk> +2014-11-27 Katsumi Yamaoka <yamaoka@jpl.org> - * mml2015.el (mml2015-display-key-image): New variable. + * gnus-art.el (gnus-use-idna): + * gnus-sum.el (gnus-summary-idna-message): + * message.el (message-use-idna): + Protect against nil value for idna-program. + + * message.el (message-use-idna): Load Mule-UCS for XEmacs 21.4. + +2014-11-25 Glenn Morris <rgm@gnu.org> + + * gnus-start.el (gnus-save-newsrc-file-check-timestamp): + Add :version tag. + +2014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * pop3.el (pop3-open-server): Warn unless encrypted. + + * nnimap.el (nnimap-open-connection-1): Warn unless encrypted. + +2014-11-17 Albert Krewinkel <albert@zeitkraut.de> + + * message.el (message-valid-fqdn-regexp): Add non-internaional new + TLDs. + +2014-11-14 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-sum.el (gnus-summary-exit-no-update): Don't query about + discarding changes in ephemeral groups. + + * ietf-drums.el (ietf-drums-parse-address): Don't issue warnings about + things the user isn't interested in. + +2014-11-13 Julien Danjou <jd@abydos> + + * gnus-notifications.el (gnus-notifications-notify): Provide both + app-icon and image-path. + +2014-11-10 Kenjiro NAKAYAMA <nakayamakenjiro@gmail.com> + + * gnus/mm-url.el (mm-url-encode-multipart-form-data): + Restore to handle "multipart/form-data" by eww. + +2014-11-07 Tassilo Horn <tsdh@gnu.org> + + * gnus-start.el (gnus-activate-group): Fix typo reported by Tim + Landscheidt. + +2014-10-29 Paul Eggert <eggert@cs.ucla.edu> + + Simplify use of current-time and friends. + * gnus-delay.el (gnus-delay-article): + * gnus-sum.el (gnus-summary-read-document): + * gnus-util.el (gnus-seconds-today, gnus-seconds-month): + * message.el (message-make-expires-date): + Omit unnecessary call to current-time. + * gnus-util.el (gnus-float-time): Simplify to an alias because + time-to-seconds now behaves like float-time with respect to nil arg. + (gnus-seconds-year): Don't call current-time twice to get the current + time stamp, as this can lead to inconsistent results. 2014-10-27 Katsumi Yamaoka <yamaoka@jpl.org> * gnus.el (gnus-mode-line-buffer-identification): - Don't add image data for a non-graphic display; - Don't shadow load-path, it blocks autoloading of find-image (bug#18813). + Don't add image data for a non-graphic display (bug#18813). + +2014-10-24 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus.el (gnus-mode-line-buffer-identification): Don't shadow + load-path, it blocks autoloading of find-image (bug#18813). -2014-10-27 enami tsugutomo <tsugutomo.enami@jp.sony.com> +2014-10-24 enami tsugutomo <tsugutomo.enami@jp.sony.com> * nnimap.el (nnimap-wait-for-response): Ignore NOOP response requested to keep connection open (bug#18728). 2014-10-20 Glenn Morris <rgm@gnu.org> - * Version 24.4 released. + * Merge in all changes up to 24.4 release. + +2014-10-15 Jorge A. Alfaro-Murillo <jorge.alfaro-murillo@yale.edu> (tiny change) + + * message.el (message-insert-signature): Use `newline' instead of + inserting explicit "\n". + +2014-10-15 Sylvain Chouleur <sylvain.chouleur@gmail.com> + + * gnus-icalendar.el: Support vcal format timezones. + (gnus-icalendar-event--decode-datefield): Use icalendar functions to + compute dates with associated timezone. + (gnus-icalendar-event-from-ical): Compute all timezones. + +2014-10-14 Teodor Zlatanov <tzz@lifelogs.com> + + * gnus-start.el (gnus-save-newsrc-file-check-timestamp): New option to + check the newsrc.eld file's timestamp before saving it. + (gnus-save-newsrc-file): Use it, with a prompt when the newsrc.eld + timestamp has changed to be newer. + +2014-10-06 Jan Tatarik <jan.tatarik@gmail.com> + + * gnus-icalendar.el (gnus-icalendar-identities): + Include message-alternative-emails. + +2014-10-04 Alan Schmitt <alan.schmitt@polytechnique.org> (tiny change) + + * nnimap.el (nnimap-process-expiry-targets): Reverse the list of + expired messages only when it was built in reverse order. + +2014-10-04 Peter Münster <pmlists@free.fr> (tiny change) + + * gnus-delay.el (gnus-delay-send-queue): Remove `gnus-delay-header' + last so it can be used in `message-send-hook'. + +2014-10-02 Daiki Ueno <ueno@gnu.org> + + * mml.el (mml-parse-1): Error out if unknown mode is specified in + <#secure> tag (bug#18513). 2014-09-29 Daiki Ueno <ueno@gnu.org> * mml.el (mml-parse-1): Error out if unknown mode is specified in <#secure> tag (bug#18513). +2014-09-11 Paul Eggert <eggert@cs.ucla.edu> + + * gnus-cloud.el (gnus-cloud-parse-version-1): Fix misspelling + of ":delete". + +2014-08-26 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-browse-html-save-cid-content) + (gnus-article-browse-html-parts): + Revert last change that breaks links other than cid contents. + +2014-08-26 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-browse-html-save-cid-content) + (gnus-article-browse-html-parts): Make cid file names relative. + +2014-08-21 Katsumi Yamaoka <yamaoka@jpl.org> + + * mm-view.el (mm-display-inline-fontify): Make the working buffer + temporarily displayed when running a mode function (at least org-mode + requires it). + +2014-08-14 Alan Schmitt <alan.schmitt@polytechnique.org> + + * gnus-sum.el (gnus-summary-expire-articles): Functions registered to + the gnus-summary-article-expire-hook should be told where the function + is going. In particular, the Gnus registry might want to know. + +2014-08-12 Stefan Monnier <monnier@iro.umontreal.ca> + + * gnus-art.el (gnus-hidden-properties): Drop the evil `intangible'. + +2014-08-06 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-sum.el (gnus-summary-expire-articles): Revert. + +2014-08-05 Eric Abrahamsen <eric@ericabrahamsen.net> + + * gnus-sum.el (gnus-summary-expire-articles): Functions registered to + the gnus-summary-article-expire-hook should be told where the function + is going. In particular, the Gnus registry might want to know. + +2014-07-31 Tassilo Horn <tsdh@gnu.org> + + * gnus-msg.el (gnus-inews-insert-gcc): Allow `gcc-self' to be a list of + groups and t. + +2014-07-22 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-utils.el (gnus-recursive-directory-files): + Unify hard or symbolic links (bug#18063). + +2013-07-17 Albert Krewinkel <albert@zeitkraut.de> + + * gnus-msg.el (gnus-configure-posting-style): + Allow string replacements in values when matching against a header. + +2014-07-07 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-start.el (gnus-dribble-read-file): Don't stop the auto-saving of + the dribble buffer even when it is shrunk a lot. + <http://thread.gmane.org/gmane.emacs.gnus.user/16923> + 2014-06-26 Glenn Morris <rgm@gnu.org> * mm-util.el (help-function-arglist): Remove outdated declaration. -2014-06-22 Andreas Schwab <schwab@linux-m68k.org> +2014-06-24 Andreas Schwab <schwab@linux-m68k.org> * html2text.el (html2text-get-attr): Rewrite to handle spaces in quoted attribute values. (Bug#17834) -2014-05-28 Andreas Schwab <schwab@linux-m68k.org> +2013-06-22 Dmitry Antipov <dmantipov@yandex.ru> + + * gnus-sum.el (gnus-summary-edit-article-done): + Prefer point-marker to copy-marker of point. + +2014-06-05 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-edit-part): Don't modifiy markers. + (gnus-article-read-summary-keys): + Don't bug out when there is no article in the summary buffer. + (gnus-mime-buttonize-attachments-in-header): + Improve criterion that finds parts to display. + + * gnus-art.el (gnus-mm-display-part): + * mm-decode.el (mm-shr): + * mm-view.el (mm-inline-text-html-render-with-w3m, mm-inline-text) + (mm-insert-inline): Revert last changes. + +2014-06-05 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mm-display-part): + * mm-decode.el (mm-shr): + * mm-view.el (mm-inline-text-html-render-with-w3m, mm-inline-text) + (mm-insert-inline): Set insertion type of end-marker, not only + start-marker, of undisplayer so as to stay after inserted text. + +2014-06-02 Andreas Schwab <schwab@linux-m68k.org> * html2text.el (html2text-get-attr): Fix typo when splitting value from attribute. (Bug#17613) -2014-05-06 Glenn Morris <rgm@gnu.org> +2014-05-29 Stefan Monnier <monnier@iro.umontreal.ca> + + * mm-view.el (mm-display-inline-fontify): Use font-lock-ensure. + * gnus-cite.el (gnus-message-citation-mode): Use font-lock-flush. + +2014-05-15 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part): + Don't delete next part button; keep spacing between buttons. + +2014-05-14 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part): + Work for the last MIME part in an article. + (gnus-mime-display-single): Suppress excessive newlines between parts. + + * mm-uu.el (mm-uu-dissect): Assume that separators may be accompanied + by leading or trailing newline. + +2014-05-09 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mm-display-part): Don't put article out of sight + while prompting a user for a file name, etc. + (gnus-mime-display-single): Display part with a common appearance no + matter whether MIME button is omitted or not; don't add duplicate entry + to gnus-article-mime-handle-alist. + (gnus-mime-buttonize-attachments-in-header): Use copied buttons. + +2014-05-08 Adam Sjøgren <asjo@koldfront.dk> + + * mml2015.el (mml2015-display-key-image): New variable. + +2014-05-08 Glenn Morris <rgm@gnu.org> * gnus-fun.el (gnus-grab-cam-face): Do not use predictable temp-file name. (http://bugs.debian.org/747100) This is CVE-2014-3421. -2014-05-01 Glenn Morris <rgm@gnu.org> +2014-05-04 Glenn Morris <rgm@gnu.org> * gnus-registry.el (gnus-registry-install-p): Doc fix. +2014-05-02 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mime-inline-part): Redisplay a button so as to show + the displaying state of a part. + (gnus-mm-display-part): Don't insert a newline in the beginning of + a part like gnus-mime-inline-part doesn't; work for XEmacs. + + * mm-decode.el (mm-display-part): Don't insert a newline in the top. + (mm-shr): Make undisplayer unbreakable. + + * mm-view.el (mm-inline-image-emacs, mm-inline-image-xemacs): + Don't insert excessive newline. + (mm-inline-text-html-render-with-w3m, mm-inline-text) + (mm-insert-inline): Make undisplayer unbreakable. + +2014-05-01 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mm-display-part): + Highlight header attachment buttons. + +2014-04-30 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mm-display-part): Don't move point while toggling + a part; redisplay a button (enbugged in 2014-03-23). + +2014-04-27 Teodor Zlatanov <tzz@lifelogs.com> + + * auth-source.el (auth-source-search, auth-source-search-backends): + Treat :max 0 as an indicator that a boolean return is wanted, as + documented. Reported by Joe Bloggs. + +2014-04-20 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-icalendar.el: Require gnus-art. + +2014-04-20 Jan Tatarik <jan.tatarik@gmail.com> + + * gnus-icalendar.el (gnus-icalendar-event->org-entry) + (gnus-icalendar--update-org-event): put event timestamp in + the org entry body instead of the drawer. + (gnus-icalendar-event--get-attendee-names): list of participants should + contain even attendees without common name attribute. + (gnus-icalendar--update-org-event): don't generate duplicates of empty + property tags in org drawers. + +2014-04-15 Katsumi Yamaoka <yamaoka@jpl.org> + + * gmm-utils.el (gmm-format-time-string): New function. + + * message.el (message-insert-formatted-citation-line): Use the original + author's time zone to express a date string. + +2014-04-06 Stefan Monnier <monnier@iro.umontreal.ca> + + * gnus-srvr.el (gnus-tmp-how, gnus-tmp-name, gnus-tmp-where) + (gnus-tmp-status, gnus-tmp-agent, gnus-tmp-cloud) + (gnus-tmp-news-server, gnus-tmp-news-method, gnus-tmp-user-defined): + Silence compiler warnings. + (gnus-server-insert-server-line): Don't use dyn-bind var as argument. + +2014-03-24 Katsumi Yamaoka <yamaoka@jpl.org> + + * mml.el: Require url when compiling. + + * gnus-cloud.el (gnus-cloud-parse-version-1): + Use plist-get rather than CL's getf. + (gnus-activate-group, gnus-subscribe-group): Declare. + + * gnus-sum.el (gnus-mime-buttonize-attachments-in-header): Declare. + +2014-03-23 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-sum.el (gnus-summary-toggle-header): Display header attachment + buttons when toggling the header off. + +2014-03-23 Daiki Ueno <ueno@gnu.org> + + * mml2015.el (mml2015-use): Don't check the availability of GnuPG + commands here; instead, only check if epg-config.el is available. + +2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + * mml.el (mml-expand-html-into-multipart-related): Allow sending HTML + messages with embedded images. + (mml-generate-mime): Don't bug out if you don't have libxml. + +2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + * message.el (message-make-html-message-with-image-files): New command. + +2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + * mml.el (mml-insert-mime-headers): Allow `recipient-filename'. + +2014-03-23 David Engster <deng@randomsample.de> + + * auth-source.el (auth-source-netrc-saver): Do not depend on `cl-lib' + to stay compatible with older Emacsen, so replace `cl-loop' with + `loop'. + +2014-03-23 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-prepare, gnus-article-prepare-display): + Display header attachment buttons by gnus-article-prepare-display + rather than gnus-article-prepare so as to view in mml-preview as well. + +2014-03-23 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-goto-part): Find a button in the body first. + (gnus-mime-buttonize-attachments-in-header): Number hidden buttons. + +2014-03-23 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mime-buttonize-attachments-in-header): + Display buttons that are hidden in unselected alternative part as well. + (gnus-mime-display-alternative): Redraw attachment buttons in header. + + * gmm-utils.el (gmm-labels): Add edebug spec. + +2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + * gnus-srvr.el (gnus-server-toggle-cloud-server): New command and + keystroke. + (gnus-server-toggle-cloud-server): Only allow clouding applicable + types. + +2014-03-23 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus.el (gnus-copy-overlay, gnus-overlays-at): New functions. + + * gnus-art.el (gnus-mime-display-attachment-buttons-in-header): + New user option. + (gnus-mime-buttonize-attachments-in-header): New function. + (gnus-article-prepare): Use it. + (gnus-mime-inline-part): Suppress extra newline. + (gnus-mm-display-part): Save excursion; + remove useless deleting and adding of buttons. + (gnus-insert-mime-button): Allow insertion in the middle of a line. + + * gnus-sum.el (gnus-summary-wash-mime-map, gnus-summary-article-menu): + Add gnus-mime-buttonize-attachments-in-header. + +2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + * nnimap.el (nnimap-request-articles): New command to download several + articles at once. + + * gnus.el (gnus-variable-list): Save Cloud variables. + +2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + * gnus-cloud.el: New file to provide the Emacs Cloud. + + * gravatar.el (gravatar-retrieve-synchronously): XEmacs also has + `url-retrieve-synchronously', apparently. + + * gnus-notifications.el (gravatar-retrieve-synchronously): Declare for + XEmacs. + + * nnrss.el (libxml-parse-html-region): Silence compilation error. + +2014-03-23 Daniel Dehennin <daniel.dehennin@baby-gnu.org> + + * gnus-mlspl.el (gnus-group-split-fancy): Use `gnus-parameters' in + `gnus-group-split-fancy'. + +2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + * message.el (message-remove-header): Doc fix. + (message-forward-included-headers): New variable. + (message-remove-ignored-headers): Use it. + +2014-03-23 Dave Abrahams <dave@boostpro.com> + + * gnus-sum.el (gnus-summary-open-group-with-article): New command. + +2014-03-23 Rasmus Pank Roulund <emacs@pank.eu> + + * gnus-fun.el (gnus-x-face-omit-files): Regexp to omit matched results + from random face commands. + (gnus-face-directory): Like `gnus-x-face-directory` for png files and + Face. + (gnus-face-omit-files): Like `gnus-x-face-omit-files` for Face. + (gnus--random-face-with-type): Generic function returning a face-type + as a string. + (gnus--insert-random-face-with-type): Generic function inserting a face + in a message buffer header. + (gnus-random-x-face): Rewritten to use `gnus--random-face-with-type`. + (gnus-insert-random-x-face-header): Rewritten to use + `gnus--insert-random-face-with-type`. + (gnus-random-face): Return random (png) Face as string. + (nus-insert-random-face-header): Insert random (png) Face in a message + buffer. + +2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + * mm-url.el: Remove all usage of w3. + + * nnrss.el: Ditto. + + * mm-decode.el: Ditto. + + * mm-view.el: Ditto. + + * gnus-setup.el: Remove outdated file. + 2014-03-07 Lars Ingebrigtsen <larsi@gnus.org> * nnimap.el (nnimap-request-accept-article): Make respooling to nnimap @@ -152,7 +722,7 @@ * gnus-setup.el (gnus-use-sendmail): We never use sendmail for mail reading. -2014-01-09 Ken Olum <kdo@cosmos.phy.tufts.edu> (tiny change) +2014-01-09 Ken Olum <kdo@cosmos.phy.tufts.edu> * message.el (message-bury): Call bury-buffer with no argument in the message-return-action case too. @@ -276,7 +846,7 @@ * gnus-icalendar.el (gnus-icalendar-event:org-timestamp): Fix org-timestamp for events ending at midnight. -2013-11-21 Ivan Shmakov <ivan@siamics.net> (tiny change) +2013-11-21 Ivan Shmakov <ivan@siamics.net> * nndoc.el (nndoc-type-alist, nndoc-debbugs-db-type-p): Support debbugs .log files. @@ -23950,10 +24520,10 @@ * gnus-group.el: Require gnus-sum and autoload functions to resolve warnings when gnus-group.el compiled alone. - (gnus-group-line-format): Documented new %F. + (gnus-group-line-format): Document new %F. (size of Fetched data) group line format; identifies disk space used by agent and cache. - (gnus-group-line-format-alist): Defined new F format. + (gnus-group-line-format-alist): Define new F format. (gnus-total-fetched-for): New function. (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2 index e6daa5f9749..ce8e1b91e4f 100644 --- a/lisp/gnus/ChangeLog.2 +++ b/lisp/gnus/ChangeLog.2 @@ -41,20 +41,20 @@ * message.el (message-header-synonyms): Defcustom. (message-get-reply-headers): Catch `Original-To'. - (message-carefully-insert-headers): Added comment. + (message-carefully-insert-headers): Add comment. - * gnus-sum.el (gnus-summary-make-menu-bar): Improved "Washing" menu. + * gnus-sum.el (gnus-summary-make-menu-bar): Improve "Washing" menu. 2004-01-03 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-sum.el (gnus-select-newsgroup): Use cat. - * gnus-agent.el (gnus-agent-cat-enable-undownloaded-faces): New - cat. + * gnus-agent.el (gnus-agent-cat-enable-undownloaded-faces): + New cat. - * gnus.el (gnus-user-agent): Moved here. + * gnus.el (gnus-user-agent): Move here. - * gnus-msg.el (gnus-user-agent): Moved from here. + * gnus-msg.el (gnus-user-agent): Move from here. * gnus.el (gnus-version-number): Bump. @@ -104,20 +104,19 @@ topic lines. (gnus-group-set-current-level): Fix fix. -2003-12-31 Jeremy Maitin-Shepard <jbms@attbi.com> +2003-12-31 Jeremy Maitin-Shepard <jbms@attbi.com> (tiny change) - * mml.el (mml-generate-mime-1): Use mml-compute-boundary (tiny - change). + * mml.el (mml-generate-mime-1): Use mml-compute-boundary. 2003-12-30 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-group.el: Removed `(when t ...)' around `gnus-define-keys'. - (gnus-group-group-map): Added `gnus-group-read-ephemeral-group' + * gnus-group.el: Remove `(when t ...)' around `gnus-define-keys'. + (gnus-group-group-map): Add `gnus-group-read-ephemeral-group' (already in previous commit inadvertently). - (gnus-group-make-menu-bar): Added `gnus-group-read-ephemeral-group'. + (gnus-group-make-menu-bar): Add `gnus-group-read-ephemeral-group'. (gnus-group-read-ephemeral-group): Made interactive. - * gnus-score.el (gnus-score-find-trace): Added comment on sync + * gnus-score.el (gnus-score-find-trace): Add comment on sync with `gnus-score-edit-file-at-point'. * gnus-logic.el (gnus-score-advanced): Ditto. @@ -127,8 +126,8 @@ 2003-12-30 Simon Josefsson <jas@extundo.com> - * gnus-score.el (gnus-score-edit-file-at-point): Use - gnus-point-at-*, for portability. + * gnus-score.el (gnus-score-edit-file-at-point): + Use gnus-point-at-*, for portability. 2003-12-30 Reiner Steib <Reiner.Steib@gmx.de> @@ -136,8 +135,8 @@ custom type. (gnus-button-mid-or-mail-regexp): Don't be too restrictive. Suggested by Felix Wiemann <Felix.Wiemann@gmx.net>. - (gnus-button-alist): Added "M-x ... RET" and "mid:" buttons. - Added comments about relevant RFCs. + (gnus-button-alist): Add "M-x ... RET" and "mid:" buttons. + Add comments about relevant RFCs. * gnus-sum.el (gnus-summary-mode): Untabify doc-string. (gnus-summary-goto-article): Allow `%40'. @@ -150,15 +149,15 @@ 2003-12-30 Reiner Steib <Reiner.Steib@gmx.de> - (gnus-score-find-trace): Use gnus-score-edit-file-at-point. Added - `f' and `t' commands, added quick help. With some suggestions + (gnus-score-find-trace): Use gnus-score-edit-file-at-point. + Add `f' and `t' commands, added quick help. With some suggestions from Karl Pflästerer <sigurd@12move.de>. - * gnus-util.el (gnus-emacs-version): Added doc-string. + * gnus-util.el (gnus-emacs-version): Add doc-string. * mml.el (mml-minibuffer-read-disposition): New function. (mml-attach-file): Use it. - (mml-preview): Added MIME preview to gnus-buffers. + (mml-preview): Add MIME preview to gnus-buffers. 2003-12-30 Karl Pflästerer <sigurd@12move.de> @@ -190,7 +189,7 @@ (gnus-agent-auto-agentize-methods): Customize. 2003-12-29 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus.el (gnus-server-to-method): Fixed bug in 2003-12-22 + * gnus.el (gnus-server-to-method): Fix bug in 2003-12-22 check-in. 2003-12-28 Adrian Lanz <lanz@fowi.ethz.ch> @@ -202,8 +201,8 @@ 2003-12-28 Jesper Harder <harder@ifa.au.dk> - * mm-view.el (mm-text-html-washer-alist): Use - mm-inline-wash-with-stdin for w3m-standalone. + * mm-view.el (mm-text-html-washer-alist): + Use mm-inline-wash-with-stdin for w3m-standalone. * mm-decode.el (mm-text-html-renderer): Add w3m-standalone. @@ -226,16 +225,16 @@ 2003-12-22 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-int.el (gnus-open-server): Fixed the server status such + * gnus-int.el (gnus-open-server): Fix the server status such that an agentized server, when opened offline, has a status of offline. Also fixes bug whereby the agent's backend was called twice to open each server. - * gnus-start.el (gnus-get-unread-articles-in-group): Autoload - gnus-agent-possibly-alter-active rather than inline to resolve + * gnus-start.el (gnus-get-unread-articles-in-group): + Autoload gnus-agent-possibly-alter-active rather than inline to resolve compiler warnings. - * gnus.el (gnus-server-to-method): Added fallback of iterating + * gnus.el (gnus-server-to-method): Add fallback of iterating over gnus-newsrc-alist to resolve names of foreign servers. Should fix recent agent bug. @@ -247,8 +246,8 @@ 2003-12-21 Jesper Harder <harder@ifa.au.dk> - * gnus-agent.el (gnus-agent-read-agentview): Use - car-less-than-car. + * gnus-agent.el (gnus-agent-read-agentview): + Use car-less-than-car. 2003-12-20 Artem Chuprina <ran@ran.pp.ru> (tiny change) @@ -267,17 +266,17 @@ 2003-12-18 Reiner Steib <Reiner.Steib@gmx.de> * mm-url.el (mm-url-insert-file-contents-external) - (mm-url-insert-file-contents): Added doc-strings. Autoload. + (mm-url-insert-file-contents): Add doc-strings. Autoload. 2003-12-18 Jesper Harder <harder@ifa.au.dk> - * gnus-cus.el (defvar): Defvar - gnus-agent-cat-disable-undownloaded-faces. + * gnus-cus.el (defvar): + Defvar gnus-agent-cat-disable-undownloaded-faces. 2003-12-17 Katsumi Yamaoka <yamaoka@jpl.org> - * message.el (message-forward-subject-name-subject): Use - gnus-extract-address-components instead of + * message.el (message-forward-subject-name-subject): + Use gnus-extract-address-components instead of mail-header-parse-address because it may be called with non-ascii text. @@ -320,7 +319,7 @@ 2003-12-13 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el: Added some gnus-registry autoloads. + * spam.el: Add some gnus-registry autoloads. (spam-split-symbolic-return): Makes spam-split return 'spam instead of the value of spam-split-group when spam is detected. (spam-split-symbolic-return-positive): Makes spam-split return @@ -345,8 +344,8 @@ (spam-unload-hook): Remove spam-find-spam from gnus-summary-prepare-hook. - * gnus.el (spam-autodetect, spam-autodetect-methods): New - configuration items for spam autodetection. + * gnus.el (spam-autodetect, spam-autodetect-methods): + New configuration items for spam autodetection. 2003-12-12 Reiner Steib <Reiner.Steib@gmx.de> @@ -367,16 +366,16 @@ (gnus-agent-regenerate-group): When necessary, alter the group's active range to include articles newly recognized as being downloaded. - (gnus-agent-regenerate): Removed code that updated the agent's + (gnus-agent-regenerate): Remove code that updated the agent's active file as the new gnus-agent-possibly-alter-active function obsolesced it. - * gnus-cus.el (gnus-agent-customize-category): Added missing + * gnus-cus.el (gnus-agent-customize-category): Add missing agent-disable-undownloaded-faces parameter. * gnus-start.el (gnus-activate-group): Backed out my 2003-11-29 patch as it was too late at adjusting the active range. - (gnus-get-unread-articles-in-group): Added call to new + (gnus-get-unread-articles-in-group): Add call to new gnus-agent-possibly-alter-active to adjust the active range. 2003-12-10 Jesper Harder <harder@ifa.au.dk> @@ -385,10 +384,10 @@ 2003-12-10 Lőrentey Károly <lorentey@elte.hu> - * spam.el (spam-disable-spam-split-during-ham-respool): New - variable. - (spam-ham-copy-or-move-routine): Respect - spam-disable-spam-split-during-ham-respool. + * spam.el (spam-disable-spam-split-during-ham-respool): + New variable. + (spam-ham-copy-or-move-routine): + Respect spam-disable-spam-split-during-ham-respool. (spam-split-disabled): New variable. (spam-split): Respect spam-split-disabled. @@ -412,8 +411,8 @@ 2003-12-09 Xavier Maillard <zedek@gnu-rox.org> - * spam.el (spam-bogofilter-database-directory): Correct - customization group. + * spam.el (spam-bogofilter-database-directory): + Correct customization group. 2003-12-09 Per Abrahamsen <abraham@dina.kvl.dk> @@ -459,8 +458,8 @@ 2003-12-07 Jesper Harder <harder@ifa.au.dk> - * spam.el (spam-check-spamoracle, spam-spamoracle-learn): Don't - use = or zerop to test the return value of call-process, because + * spam.el (spam-check-spamoracle, spam-spamoracle-learn): + Don't use = or zerop to test the return value of call-process, because it can be a string. * mail-source.el (mail-source-fetch-with-program): Do. @@ -505,10 +504,10 @@ 2003-12-01 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-consider-all-articles): Updated - docstring. + * gnus-agent.el (gnus-agent-consider-all-articles): + Update docstring. (gnus-predicate-implies-unread, gnus-predicate-implies-unread-1): - Fixed implementation such that the predicate `true' no longer + Fix implementation such that the predicate `true' no longer evaluates to t. 2003-12-01 Adrian Lanz <lanz@fowi.ethz.ch> (tiny change) @@ -558,14 +557,14 @@ 2003-11-29 Jesper Harder <harder@ifa.au.dk> - * gnus-group.el (gnus-group-make-menu-bar): Add - gnus-group-make-rss-group. + * gnus-group.el (gnus-group-make-menu-bar): + Add gnus-group-make-rss-group. 2003-11-28 Reiner Steib <Reiner.Steib@gmx.de> - * message.el: Added custom-manual links to all variables that have + * message.el: Add custom-manual links to all variables that have an index entry in the message manual. - (message-generate-headers-first): Fixed doc-string. + (message-generate-headers-first): Fix doc-string. 2003-11-27 Katsumi Yamaoka <yamaoka@jpl.org> @@ -611,15 +610,15 @@ (spam-classification-valid-p, spam-process-type-valid-p) (spam-registration-check-valid-p) (spam-unregistration-check-valid-p): Convenience functions. - (spam-registration-function, spam-unregistration-function): Look - up the registration/unregistration function based on a + (spam-registration-function, spam-unregistration-function): + Look up the registration/unregistration function based on a classification and the check (spam-use-* symbol). (spam-list-articles): Generate list of spam/ham articles from a given list of articles. (spam-register-routine): Do the heavy work of registering and unregistering articles, using all the articles in the group or specific ones as needed. - (spam-generic-register-routine): Removed, no longer used. + (spam-generic-register-routine): Remove, no longer used. (spam-log-unregistration-needed-p, spam-log-undo-registration): Handle article registration/unregistration with a given spam/ham processor and group. @@ -642,7 +641,7 @@ parameter is specified. (spam-stat-load): Clear spam-stat-dirty. - * gnus.el (gnus-install-group-spam-parameters): Marked the + * gnus.el (gnus-install-group-spam-parameters): Mark the old-style exit processors as obsolete in the docs, added the new-style exit processors while the old ones are still allowed. @@ -666,23 +665,23 @@ 2003-11-20 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus.el (gnus-agent-covered-methods): Documented use of + * gnus.el (gnus-agent-covered-methods): Document use of named servers, not methods, to identity agentized groups. Users may now change their server configurations without having the server become "unagentized". - (gnus-agent-covered-methods): Removed from gnus-variable-list to + (gnus-agent-covered-methods): Remove from gnus-variable-list to avoid storing two copies of gnus-agent-covered-methods, one in .newsrc.eld and the other in agent/lib/servers. (gnus-server-to-method): Do not cache server for the nil method. (gnus-method-to-server): New function. Associate named server with all, even foreign, methods. - (gnus-agent-method-p, gnus-agent-method-p-cache): Incorporated + (gnus-agent-method-p, gnus-agent-method-p-cache): Incorporate simple last-response cache to offset performance lose of having to always convert methods to named servers. - * gnus-agent.el (gnus-agent-expire-days): Removed obsolete + * gnus-agent.el (gnus-agent-expire-days): Remove obsolete documentation. (gnus-agentize, gnus-agent-add-server, gnus-agent-remove-server): - Modified to support new definition of gnus-agent-covered-method. + Modify to support new definition of gnus-agent-covered-method. (gnus-agent-read-servers): Rewritten to convert old method data into server names. (gnus-agent-read-servers-validate) @@ -701,17 +700,17 @@ (gnus-agent-expire-done-message): New function. (gnus-agent-unread-articles): Bug fix. No longer drops last unread article onto read list. - (gnus-agent-regenerate-group): Changed prompt to use typical + (gnus-agent-regenerate-group): Change prompt to use typical style. (gnus-agent-group-covered-p): Rewrote to internally use gnus-agent-method-p. * gnus-int.el (gnus-start-news-server): Partially convert old gnus-agent-covered-methods to new format so that gnus-open-server functions correctly. - * gnus-srvr.el (gnus-server-insert-server-line): Replaced - gnus-agent-covered-methods with gnus-agent-method-p. - * gnus-start.el (gnus-clear-system): Added - gnus-agent-covered-methods to compensate for removing it from + * gnus-srvr.el (gnus-server-insert-server-line): + Replace gnus-agent-covered-methods with gnus-agent-method-p. + * gnus-start.el (gnus-clear-system): + Add gnus-agent-covered-methods to compensate for removing it from gnus-variable-list. (gnus-setup-news): Complete conversion of old gnus-agent-covered-methods to new format so that secondary and @@ -831,9 +830,9 @@ 2003-11-10 Reiner Steib <Reiner.Steib@gmx.de> - * message.el (message-mode-field-menu): Moved some entries, added + * message.el (message-mode-field-menu): Move some entries, added `message-insert-wide-reply'. - (message-change-subject): Fixed comment. + (message-change-subject): Fix comment. 2003-11-10 Sam Steingold <sds@gnu.org> @@ -876,15 +875,15 @@ requested. (gnus-registry-split-fancy-with-parent): When long names are in use, strip the name if we're in the native server, or else return nothing. - (gnus-registry-spool-action, gnus-registry-action): Use - gnus-group-guess-full-name-from-command-method instead of + (gnus-registry-spool-action, gnus-registry-action): + Use gnus-group-guess-full-name-from-command-method instead of gnus-group-guess-full-name. * spam.el (spam-mark-spam-as-expired-and-move-routine) (spam-ham-copy-or-move-routine): Prevent article deletions or moves unless the backend allows it. - * gnus.el (gnus-install-group-spam-parameters): Fixed parameters + * gnus.el (gnus-install-group-spam-parameters): Fix parameters to list spamoracle as well, suggested by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>. @@ -899,7 +898,7 @@ 2003-10-31 Teodor Zlatanov <tzz@lifelogs.com> * spam.el - (spam-log-processing-to-registry): Improved message and comments. + (spam-log-processing-to-registry): Improve message and comments. (spam-log-unregistration-needed-p): New function. (spam-ifile-register-spam-routine) (spam-ifile-register-ham-routine, spam-stat-register-spam-routine) @@ -908,8 +907,8 @@ (spam-whitelist-register-routine) (spam-bogofilter-register-spam-routine) (spam-bogofilter-register-ham-routine) - (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): Change - spam-log-processing-to-registry invocations appropriately. + (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): + Change spam-log-processing-to-registry invocations appropriately. 2003-10-31 Derek Atkins <warlord@MIT.EDU> (tiny change) @@ -936,8 +935,8 @@ (spam-whitelist-register-routine) (spam-bogofilter-register-spam-routine) (spam-bogofilter-register-ham-routine) - (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): Add - spam-log-processing-to-registry invocations. + (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): + Add spam-log-processing-to-registry invocations. * gnus-registry.el: Fixed docs in the preface to mention gnus-registry-initialize. @@ -1002,7 +1001,7 @@ * spam.el (spam-mark-spam-as-expired-and-move-routine) (spam-ham-copy-or-move-routine): Don't ask when deleting copied articles, and use move instead of copy when possible. - (spam-split): Added the option of specifying a string as a + (spam-split): Add the option of specifying a string as a spam-split parameter; such a string will override spam-split-group temporarily. @@ -1017,8 +1016,8 @@ * gnus-art.el (gnus-button-alist): Allow & in mailto URLs. (gnus-header-button-alist): Likewise. (gnus-url-mailto): Handle ?to parameters. Replace \r\n with \n. - Reverse parameter list to use same order as in the URL. Reported - by f95-msv@f.kth.se (Mårten Svantesson). + Reverse parameter list to use same order as in the URL. + Reported by f95-msv@f.kth.se (Mårten Svantesson). 2003-10-25 Teodor Zlatanov <tzz@lifelogs.com> @@ -1036,8 +1035,8 @@ 2003-10-24 Katsumi Yamaoka <yamaoka@jpl.org> - * nndoc.el (nndoc-guess-type): Reverse the sort order. Suggested - by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>. + * nndoc.el (nndoc-guess-type): Reverse the sort order. + Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>. (nndoc-dissect-buffer): Don't miss even-numbered articles. 2003-10-23 Katsumi Yamaoka <yamaoka@jpl.org> @@ -1054,7 +1053,7 @@ requirement, now just "IP address" is enough for detection for blackhole checking. (spam-check-blackholes): Oops, the dots were not escaped. - (spam-mark-spam-as-expired-and-move-routine): Added multiple group + (spam-mark-spam-as-expired-and-move-routine): Add multiple group support (multiple copies, then delete). (spam-ham-copy-routine): New function. (spam-ham-move-routine): New function. @@ -1086,8 +1085,8 @@ * gnus-art.el (gnus-narrow-to-page): Clear as well as set the value for gnus-page-broken. - * gnus-sum.el (gnus-summary-beginning-of-article): Use - gnus-break-pages instead of gnus-page-broken. + * gnus-sum.el (gnus-summary-beginning-of-article): + Use gnus-break-pages instead of gnus-page-broken. (gnus-summary-end-of-article): Use gnus-break-pages instead of gnus-page-broken; narrow to the end of a page beforehand. (gnus-summary-toggle-header): Use gnus-break-pages instead of @@ -1113,15 +1112,15 @@ * gnus-msg.el (gnus-extended-version): Use it. - * gnus-util.el (gnus-emacs-version): Separated out into own + * gnus-util.el (gnus-emacs-version): Separate out into own function. 2003-10-19 Reiner Steib <Reiner.Steib@gmx.de> - * message.el (message-mode-field-menu): Added - message-generate-unsubscribed-mail-followup-to. + * message.el (message-mode-field-menu): + Add message-generate-unsubscribed-mail-followup-to. (message-forward-subject-fwd): Avoid double "Fwd: ". - (message-change-subject): Added comment. + (message-change-subject): Add comment. 2003-10-19 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -1131,8 +1130,8 @@ 2003-10-19 Katsumi Yamaoka <yamaoka@jpl.org> - * gnus-sum.el (gnus-remove-odd-characters): Use - mm-subst-char-in-string instead of subst-char-in-string. + * gnus-sum.el (gnus-remove-odd-characters): + Use mm-subst-char-in-string instead of subst-char-in-string. (gnus-summary-refer-article): Use gnus-replace-in-string instead of replace-regexp-in-string. @@ -1143,22 +1142,19 @@ 2003-10-18 Jesper Harder <harder@ifa.au.dk> - * gnus-sum.el (gnus-summary-save-parts-last-directory): Default - to mm-default-directory. + * gnus-sum.el (gnus-summary-save-parts-last-directory): + Default to mm-default-directory. (gnus-summary-save-parts-1): Use mm-file-name-rewrite-functions. 2003-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org> - * pop3.el (pop3-read-response): Check whether the process is - alive. + * pop3.el (pop3-read-response): Check whether the process is alive. * gnus-sum.el (gnus-summary-refer-article): Strip spaces. - * rfc2047.el (rfc2047-encode-region): Do error out on invalid - strings. + * rfc2047.el (rfc2047-encode-region): Do error out on invalid strings. - * nntp.el (nntp-retrieve-headers-with-xover): Get error messages - right. + * nntp.el (nntp-retrieve-headers-with-xover): Get error messages right. * gnus-agent.el (gnus-agent-read-servers): Remove sit-for. @@ -1244,8 +1240,8 @@ name for gcc-self. (gnus-inews-insert-archive-gcc): Paren mistake. - * gnus-sum.el (gnus-summary-enter-digest-group): Add - parent-group. + * gnus-sum.el (gnus-summary-enter-digest-group): + Add parent-group. * gnus-art.el (gnus-ignored-headers): Add more headers. @@ -1329,8 +1325,8 @@ 2003-10-06 Jesper Harder <harder@ifa.au.dk> - * gnus.el (gnus-group-faq-directory): Update .tw entry. From - Albert Chun-Chieh Huang <mr894348@cs.nthu.edu.tw> + * gnus.el (gnus-group-faq-directory): Update .tw entry. + From Albert Chun-Chieh Huang <mr894348@cs.nthu.edu.tw> 2003-10-03 Teodor Zlatanov <tzz@lifelogs.com> @@ -1355,7 +1351,7 @@ 2003-10-02 Reiner Steib <Reiner.Steib@gmx.de> - * spam.el (spam-install-hooks-function): Added Autoload cookie. + * spam.el (spam-install-hooks-function): Add Autoload cookie. 2003-10-02 Michael Shields <shields@msrl.com> @@ -1369,8 +1365,7 @@ 2003-10-01 Jesper Harder <harder@ifa.au.dk> - * message.el (message-send): Fix reversed logic of supersedes - check. + * message.el (message-send): Fix reversed logic of supersedes check. 2003-09-30 Reiner Steib <Reiner.Steib@gmx.de> @@ -1464,8 +1459,8 @@ 2003-09-05 Teodor Zlatanov <tzz@lifelogs.com> - * gnus-registry.el (gnus-registry-split-fancy-with-parent): Yet - another error. *sigh* + * gnus-registry.el (gnus-registry-split-fancy-with-parent): + Yet another error. *sigh* * gnus-registry.el (gnus-registry-fetch-extra-entry): Don't use puthash unless gnus-registry-entry-caching is on. @@ -1495,10 +1490,10 @@ (gnus-registry-register-message-ids): Pass subject to gnus-registry-add-group. (gnus-registry-simplify-subject) - (gnus-registry-fetch-simplified-message-subject-fast): New - functions. - (gnus-registry-fetch-extra, gnus-registry-fetch-extra-entry): Add - extra data entry caching. + (gnus-registry-fetch-simplified-message-subject-fast): + New functions. + (gnus-registry-fetch-extra, gnus-registry-fetch-extra-entry): + Add extra data entry caching. (gnus-registry-add-group): Handle the extra subject parameter. (gnus-registry-install-hooks, gnus-registry-unload-hook): Fix the gnus-register-* function names. @@ -1506,27 +1501,27 @@ * nnmail.el (nnmail-cache-insert): Add subject parameter, pass it on to the nnmail-spool-hook. - * nnbabyl.el (nnbabyl-request-accept-article): Added subject to + * nnbabyl.el (nnbabyl-request-accept-article): Add subject to nnmail-cache-insert call. - * nndiary.el (nndiary-request-accept-article): Added subject to + * nndiary.el (nndiary-request-accept-article): Add subject to nnmail-cache-insert call. - * nnfolder.el (nnfolder-request-accept-article): Added subject to + * nnfolder.el (nnfolder-request-accept-article): Add subject to nnmail-cache-insert call. - * nnimap.el (nnimap-split-articles): Added subject to + * nnimap.el (nnimap-split-articles): Add subject to nnmail-cache-insert call. - (nnimap-request-accept-article): Added subject to + (nnimap-request-accept-article): Add subject to nnmail-cache-insert call. - * nnmbox.el (nnmbox-request-accept-article): Added subject to + * nnmbox.el (nnmbox-request-accept-article): Add subject to nnmail-cache-insert call. - * nnmh.el (nnmh-request-accept-article): Added subject to + * nnmh.el (nnmh-request-accept-article): Add subject to nnmail-cache-insert call. - * nnml.el (nnml-request-accept-article): Added subject to + * nnml.el (nnml-request-accept-article): Add subject to nnmail-cache-insert call. 2003-09-04 Jesper Harder <harder@ifa.au.dk> @@ -1557,8 +1552,8 @@ 2003-08-29 Simon Josefsson <jas@extundo.com> - * gnus-group.el (gnus-group-delete-group): Doc fix. Suggested by - Jochen Küpper <jochen@jochen-kuepper.de>. + * gnus-group.el (gnus-group-delete-group): Doc fix. + Suggested by Jochen Küpper <jochen@jochen-kuepper.de>. 2003-08-29 Katsumi Yamaoka <yamaoka@jpl.org> @@ -1592,13 +1587,13 @@ 2003-08-24 Jesper Harder <harder@ifa.au.dk> - * gnus-art.el (gnus-header-button-alist, gnus-button-alist): Fix - type. + * gnus-art.el (gnus-header-button-alist, gnus-button-alist): + Fix type. 2003-08-22 Jesper Harder <harder@ifa.au.dk> - * message.el (message-make-forward-subject-function): Fix - customize mismatch. + * message.el (message-make-forward-subject-function): + Fix customize mismatch. * gnus.el (gnus-message-archive-method): Do. @@ -1608,7 +1603,7 @@ char is `/' and add more information for the user. * gnus-art.el (gnus-button-alist): Add `+' (gnus-button-handle-man). - (gnus-header-button-alist): Added `In-Reply-To'. + (gnus-header-button-alist): Add `In-Reply-To'. * nnimap.el (nnimap-open-connection): Allow different user names on the same server (and in the same authinfo file). @@ -1617,15 +1612,15 @@ * gnus-sieve.el (gnus-sieve-crosspost): Fix type. - * message.el (message-make-forward-subject-function): Add - message-forward-subject-name-subject to choices. + * message.el (message-make-forward-subject-function): + Add message-forward-subject-name-subject to choices. * gnus-art.el (gnus-article-edit-done, gnus-article-edit-exit): Redisplay article after editing. 2003-08-20 Jari Aalto <jari.aalto@poboxes.com> - * gnus.el (gnus-read-group): Added check to ask confirmation if + * gnus.el (gnus-read-group): Add check to ask confirmation if Group name contains invalid character. You can use '/' in IMAP, but not in filenames. G m cannot know what the user is creating, so let user decide. See thread m2oeysiev3.fsf@naima.lensflare.org. @@ -1645,8 +1640,8 @@ 2003-08-07 Jesper Harder <harder@ifa.au.dk> - * pgg-gpg.el (pgg-gpg-process-region): Bind - default-enable-multibyte-characters to nil. + * pgg-gpg.el (pgg-gpg-process-region): + Bind default-enable-multibyte-characters to nil. 2003-08-07 Katsumi Yamaoka <yamaoka@jpl.org> @@ -1729,11 +1724,11 @@ * spam.el (spam-use-regex-body, spam-regex-body-spam) (spam-regex-body-ham): New variables, default to nil/empty/empty. - (spam-install-hooks): Added spam-use-regex-body to list or + (spam-install-hooks): Add spam-use-regex-body to list or pre-install conditions. - (spam-list-of-checks): Added spam-use-regex-body and + (spam-list-of-checks): Add spam-use-regex-body and spam-check-regex-body to list of checks. - (spam-list-of-statistical-checks): Added spam-use-regex-body to + (spam-list-of-statistical-checks): Add spam-use-regex-body to list of statistical checks. (spam-check-regex-body): Invokes spam-check-regex-headers with appropriate variable masking. @@ -1754,8 +1749,8 @@ (gnus-registry-clean-empty): New variable to enable cleaning the registry when saving it by calling gnus-registry-clean-empty-function. - * spam.el (spam-summary-prepare-exit): Use - spam-process-ham-in-spam-groups. + * spam.el (spam-summary-prepare-exit): + Use spam-process-ham-in-spam-groups. (spam-process-ham-in-spam-groups): New variable. 2003-07-24 Jesper Harder <harder@ifa.au.dk> @@ -1763,8 +1758,8 @@ * pgg-gpg.el (pgg-gpg-process-region): Add "--yes" to options. * pgg-gpg.el, pgg-pgp.el, pgg-pgp5.el, pgg.el: Reapply changes - from 2003-04-03 to fix security problem. See - http://www.debian.org/security/2003/dsa-339. + from 2003-04-03 to fix security problem. + See http://www.debian.org/security/2003/dsa-339. 2003-07-23 Teodor Zlatanov <tzz@lifelogs.com> @@ -1806,8 +1801,7 @@ 2003-07-10 Kai Großjohann <kai.grossjohann@gmx.net> - * imap.el (imap-arrival-filter): Fix test for missing process - buffer. + * imap.el (imap-arrival-filter): Fix test for missing process buffer. 2003-07-09 Gaute B Strokkenes <gs234@cam.ac.uk> (tiny change) @@ -1881,8 +1875,8 @@ 2003-07-06 Jesper Harder <harder@ifa.au.dk> - * message.el (message-send-mail-with-sendmail): Handle - non-numeric return values. + * message.el (message-send-mail-with-sendmail): + Handle non-numeric return values. * gnus-start.el (gnus-clear-system): Revert change from 2003-06-19. @@ -1928,8 +1922,8 @@ 2003-06-23 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-from-listed-p, spam-parse-list): Use - ietf-drums-parse-addresses to extract the address portion of the + * spam.el (spam-from-listed-p, spam-parse-list): + Use ietf-drums-parse-addresses to extract the address portion of the whitelist/blacklist file if it looks like an address can be found. 2003-06-23 Didier Verna <didier@xemacs.org> @@ -1942,8 +1936,8 @@ (gnus-xmas-remove-image): Ditto, with extents. * gnus-art.el (gnus-delete-images): Pass CATEGORY argument to gnus-[xmas-]remove-image. - (article-display-face): Don't always act as a toggle. Call - `gnus-put-image' with CATEGORY argument. + (article-display-face): Don't always act as a toggle. + Call `gnus-put-image' with CATEGORY argument. (article-display-x-face): Call `gnus-put-image' with CATEGORY argument. * smiley.el (smiley-region): Ditto. @@ -1959,11 +1953,11 @@ 2003-06-20 Jesper Harder <harder@ifa.au.dk> - * mm-util.el (mm-append-to-file): Say "Appended to". Suggested by - Dan Jacobson <jidanni@jidanni.org>. + * mm-util.el (mm-append-to-file): Say "Appended to". + Suggested by Dan Jacobson <jidanni@jidanni.org>. - * mm-view.el (mm-inline-message): Bind - gnus-original-article-buffer to the buffer in the mml handle + * mm-view.el (mm-inline-message): + Bind gnus-original-article-buffer to the buffer in the mml handle holding the message. 2003-06-20 Katsumi Yamaoka <yamaoka@jpl.org> @@ -1994,8 +1988,8 @@ 2003-06-19 Jesper Harder <harder@ifa.au.dk> - * nnheader.el (nnheader-init-server-buffer): Add - nntp-server-buffer to gnus-buffers. + * nnheader.el (nnheader-init-server-buffer): + Add nntp-server-buffer to gnus-buffers. * gnus-start.el (gnus-clear-system): Now we don't need to kill nntp-server-buffer separately. @@ -2016,8 +2010,8 @@ 2003-06-17 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-util.el (gnus-extract-address-components): Added - doc-string. + * gnus-util.el (gnus-extract-address-components): + Add doc-string. 2003-06-16 Michael Albinus <Michael.Albinus@alcatel.de> @@ -2026,8 +2020,8 @@ 2003-06-16 Katsumi Yamaoka <yamaoka@jpl.org> - * gnus-sum.el (gnus-summary-refer-parent-article): Extract - Message-ID from In-Reply-To header. + * gnus-sum.el (gnus-summary-refer-parent-article): + Extract Message-ID from In-Reply-To header. 2003-06-16 Katsumi Yamaoka <yamaoka@jpl.org> @@ -2037,14 +2031,14 @@ 2003-06-15 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-sum.el (gnus-summary-force-verify-and-decrypt): Bind - `gnus-article-emulate-mime'. + * gnus-sum.el (gnus-summary-force-verify-and-decrypt): + Bind `gnus-article-emulate-mime'. 2003-06-15 Tommi Vainikainen <thv+gnus@iki.fi> - * message.el (message-is-yours-p): New function. Separated common - code from message-cancel-news and message-supersede. Added - matching code which uses message-alternative-emails regexp as last + * message.el (message-is-yours-p): New function. Separate common + code from message-cancel-news and message-supersede. + Add matching code which uses message-alternative-emails regexp as last resort. (message-cancel-news, message-supersede): Use message-is-yours-p. @@ -2055,11 +2049,11 @@ 2003-06-12 Dave Love <fx@gnu.org> - * nnheader.el (nnheader-functionp): Deleted. + * nnheader.el (nnheader-functionp): Delete. * nnmail.el (nnmail-split-fancy-syntax-table): Define all in defvar. - (nnmail-version): Deleted. + (nnmail-version): Delete. (nnmail-check-duplication, nnmail-expiry-target-group): Don't use nnheader-functionp. @@ -2077,15 +2071,15 @@ (spam-spamoracle, spam-spamoracle): New variables. (spam-group-spam-processor-spamoracle-p) (spam-group-ham-processor-spamoracle-p): New functions. - (spam-summary-prepare-exit): Added spamoracle ham/spam exit processing. - (spam-list-of-checks, spam-list-of-statistical-checks): Add - spam-use-spamoracle. + (spam-summary-prepare-exit): Add spamoracle ham/spam exit processing. + (spam-list-of-checks, spam-list-of-statistical-checks): + Add spam-use-spamoracle. (spam-check-spamoracle, spam-spamoracle-learn) (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): New functions. * gnus.el (gnus-group-spam-exit-processor-spamoracle) (gnus-group-ham-exit-processor-spamoracle): New variables for SpamOracle. - (spam-process, ham-process): Added spamoracle spam/ham processors. + (spam-process, ham-process): Add spamoracle spam/ham processors. 2003-06-08 Jesper Harder <harder@ifa.au.dk> @@ -2094,7 +2088,7 @@ 2003-06-07 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-sum.el (gnus-summary-make-menu-bar): Removed ["Add buttons" + * gnus-sum.el (gnus-summary-make-menu-bar): Remove ["Add buttons" gnus-summary-display-buttonized t]. 2003-06-07 Kai Großjohann <kai.grossjohann@gmx.net> @@ -2150,9 +2144,9 @@ (gnus-other-frame): Quote lambda used as hook. * message.el: Doc fixes. - (message-functionp): Deleted. Callers changed. - (message-fix-before-sending): Highlight with overlays. Clarify - `illegible text' messages. + (message-functionp): Delete. Callers changed. + (message-fix-before-sending): Highlight with overlays. + Clarify `illegible text' messages. (rmail-enable-mime-composing, gnus-message-group-art): Defvar when compiling. (gnus-find-method-for-group, nnvirtual-find-group-art): Autoload. @@ -2168,8 +2162,8 @@ 2003-06-03 Eric Eide <eeide@cs.utah.edu> - * gnus-xmas.el (gnus-xmas-create-image): Use - insert-file-contents-literally. + * gnus-xmas.el (gnus-xmas-create-image): + Use insert-file-contents-literally. 2003-06-02 Teodor Zlatanov <tzz@lifelogs.com> @@ -2195,8 +2189,8 @@ (gnus-registry-delete-group): Use it. (gnus-registry-unload-hook): Uninstall all the hooks. - * spam.el (spam-install-hooks-function, spam-unload-hook): New - functions so users that load spam.el for customization don't get + * spam.el (spam-install-hooks-function, spam-unload-hook): + New functions so users that load spam.el for customization don't get all the hooks installed. (spam-install-hooks): New variable, set to t by default if user has one of the spam-use-* variables set. @@ -2210,8 +2204,8 @@ * rfc2047.el (rfc2047-decode): Don't use mm-with-unibyte-current-buffer. - * qp.el (quoted-printable-decode-string): Use - mm-with-unibyte-buffer. + * qp.el (quoted-printable-decode-string): + Use mm-with-unibyte-buffer. 2003-05-29 Teodor Zlatanov <tzz@lifelogs.com> @@ -2250,7 +2244,7 @@ 2003-05-20 Dave Love <fx@gnu.org> - * rfc2047.el (rfc2047-q-encoding-alist): Deleted. + * rfc2047.el (rfc2047-q-encoding-alist): Delete. (rfc2047-q-encode-region): Don't use it. (rfc2047-encode-message-header) <(eq method 'mime)>: Bind rfc2047-encoding-type to `mime'. @@ -2268,11 +2262,11 @@ 2003-05-14 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agentize): Updated documentation to match + * gnus-agent.el (gnus-agentize): Update documentation to match usage. (gnus-agent-expire-group-1): Do not skip over a group when the force argument is set. - * gnus.el (gnus-agent): Updated documentation to reflect that + * gnus.el (gnus-agent): Update documentation to reflect that gnus-agent now defaults to t. 2003-05-14 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -2285,24 +2279,24 @@ 2003-05-14 Lars Magne Ingebrigtsen <larsi@gnus.org> - * mail-source.el (mail-source-delete-incoming): Changed to t. + * mail-source.el (mail-source-delete-incoming): Change to t. * rfc2047.el (rfc2047-syntax-table): Funcall. * rfc2047.el (rfc2047-encodable-p): Use the header charset. - * gnus-sum.el (gnus-summary-reselect-current-group): Supply - leave-hidden. + * gnus-sum.el (gnus-summary-reselect-current-group): + Supply leave-hidden. 2003-05-14 Jonathan I. Kamens <jik@kamens.brookline.ma.us> - * gnus-sum.el (gnus-summary-exit): Added `leave-hidden'. (Tiny + * gnus-sum.el (gnus-summary-exit): Add `leave-hidden'. (Tiny patch.) 2003-05-13 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-registry.el (gnus-registry-store-extra-entry): Use - gnus-assq-delete-all. + * gnus-registry.el (gnus-registry-store-extra-entry): + Use gnus-assq-delete-all. * gnus-xmas.el (gnus-xmas-assq-delete-all): New function. @@ -2341,10 +2335,10 @@ (gnus-agent-cat-disable-undownloaded-faces): New function. Accessor for new agent property 'agent-disable-undownloaded-faces'. - gnus-cus.el (gnus-agent-parameters): Added - agent-disable-undownloaded-faces and corrected documentation. + gnus-cus.el (gnus-agent-parameters): + Add agent-disable-undownloaded-faces and corrected documentation. (gnus-agent-cat-prepare-category-field, - gnus-agent-customize-category): Changed to avoid creating free + gnus-agent-customize-category): Change to avoid creating free references to each field's symbol. gnus-sum.el (gnus-summary-use-undownloaded-faces): New local variable. (gnus-select-newgroup): Initialize it. @@ -2352,15 +2346,15 @@ 2003-05-12 Dave Love <fx@gnu.org> - * mm-util.el (mm-read-charset): Deleted. + * mm-util.el (mm-read-charset): Delete. (mm-coding-system-mime-charset): New. (mm-read-coding-system, mm-mule-charset-to-mime-charset) (mm-charset-to-coding-system, mm-mime-charset) (mm-find-mime-charset-region): Use it. (mm-default-multibyte-p): Fix non-mule case. - * rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-bol): Eval - and compile. + * rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-bol): + Eval and compile. (rfc2047-syntax-table): Fix building table to work in Emacs 22. (rfc2047-unfold-region): Delete unused var `leading'. @@ -2371,8 +2365,8 @@ 2003-05-11 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-agent.el (gnus-agent-expire-unagentized-dirs): Added - space. + * gnus-agent.el (gnus-agent-expire-unagentized-dirs): + Add space. 2003-05-11 Jesper Harder <harder@ifa.au.dk> @@ -2390,7 +2384,7 @@ 2003-05-10 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus.el (gnus-logo-color-alist): Added no colors. + * gnus.el (gnus-logo-color-alist): Add no colors. 2003-05-09 Dave Love <fx@gnu.org> @@ -2415,12 +2409,12 @@ * gnus-registry.el (gnus-registry-unregistered-group-regex): removed in favor of the group/topic/global variables. - (gnus-registry-register-message-ids): Fixed test to omit + (gnus-registry-register-message-ids): Fix test to omit gnus-registry-unregistered-group-regex. - * gnus.el (gnus-variable-list): Removed gnus-registry-alist and + * gnus.el (gnus-variable-list): Remove gnus-registry-alist and gnus-registry-headers-alist from the list. - (gnus-registry-headers-alist): Removed. + (gnus-registry-headers-alist): Remove. (registry-ignore): New parameter, with accompanying gnus-registry-ignored-groups global variable. @@ -2430,12 +2424,12 @@ used by gnus-registry.el. * gnus-registry.el (gnus-registry-cache-file): New file variable. - (gnus-registry-cache-read, gnus-registry-cache-save): New - functions. + (gnus-registry-cache-read, gnus-registry-cache-save): + New functions. (gnus-registry-save, gnus-registry-read): Use the new gnus-registry-cache-{read|save} functions, and change the name from gnus-registry-translate-{from|to}-alist. - (gnus-registry-clear): Fixed so it doesn't refer to old function name. + (gnus-registry-clear): Fix so it doesn't refer to old function name. 2003-05-09 Dan Christensen <jdc@chow.mat.jhu.edu> @@ -2448,7 +2442,7 @@ 2003-05-08 Teodor Zlatanov <tzz@lifelogs.com> - * gnus-start.el (gnus-clear-system): Added gnus-registry-alist to + * gnus-start.el (gnus-clear-system): Add gnus-registry-alist to the list of cleared variables. * gnus-registry.el (gnus-registry-split-fancy-with-parent): @@ -2461,8 +2455,8 @@ 2003-05-08 Kai Großjohann <kai.grossjohann@gmx.net> - * gnus-sum.el (gnus-summary-next-page): Mention - `gnus-article-skip-boring' in docstring. + * gnus-sum.el (gnus-summary-next-page): + Mention `gnus-article-skip-boring' in docstring. 2003-05-08 Jesper Harder <harder@ifa.au.dk> @@ -2546,13 +2540,13 @@ * rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-eol): New. Callers of gnus- versions changed to use them. - (rfc2047-header-encoding-alist): Add `address-mime' part. Doc - fixes. + (rfc2047-header-encoding-alist): Add `address-mime' part. + Doc fixes. (rfc2047-encoding-type): New. (rfc2047-encode-message-header): Use mm-charset-to-coding-system. Don't include header name field in encoding. Add `address-mime' case and bind rfc2047-encoding-type for `mime' case. - (rfc2047-encodable-p): Deleted. + (rfc2047-encodable-p): Delete. (rfc2047-syntax-table): New. (rfc2047-encode-region, rfc2047-encode): Rewritten to take account of rfc2047 rules with respect to rfc2822 tokens and to do encoding @@ -2566,8 +2560,8 @@ 2003-05-02 Dave Love <fx@gnu.org> - * rfc2047.el (rfc2047-q-encode-region, rfc2047-decode): Use - mm-with-unibyte-current-buffer. + * rfc2047.el (rfc2047-q-encode-region, rfc2047-decode): + Use mm-with-unibyte-current-buffer. (ietf-drums, gnus-util): Don't require. * sieve.el (sieve-manage-mode-menu): Define before use. @@ -2577,9 +2571,9 @@ * mm-util.el (mm-coding-system-p): Don't override nil from coding-system-p. (mm-mule4-p, mm-disable-multibyte-mule4) - (mm-with-unibyte-current-buffer-mule4): Deleted. + (mm-with-unibyte-current-buffer-mule4): Delete. (mm-multibyte-p): Use defun, not defalias. - (mm-make-temp-file): Moved to group at top of file. + (mm-make-temp-file): Move to group at top of file. (mm-point-at-eol, mm-point-at-bol): New. * gnus-cite.el (gnus-art): Require. @@ -2599,29 +2593,29 @@ (gnus-output-to-rmail): Require mm-util. * mail-source.el (mail-source-callback): Use mm-make-temp-file. - (mail-source-make-complex-temp-name): Deleted. + (mail-source-make-complex-temp-name): Delete. * message.el (message-use-idna): Use mm-coding-system-p. (message-tokenize-header, message-make-organization) (message-make-from): Use with-temp-buffer. - (message-set-work-buffer): Deleted. + (message-set-work-buffer): Delete. (message-fill-paragraph): Use `if' not `and' for compiler warning. (message-check-news-header-syntax): Remove useless lambda. (message-forward-make-body): Use mm-disable-multibyte, mm-with-unibyte-current-buffer, mm-enable-multibyte. - (message-replace-chars-in-string): Deleted. + (message-replace-chars-in-string): Delete. * mm-extern.el (mm-extern-local-file): Use mm-disable-multibyte. (mm-extern-url): Use mm-with-unibyte-current-buffer, mm-disable-multibyte. (mm-extern-anon-ftp): Use mm-disable-multibyte. - * mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt): Use - mm-with-unibyte-current-buffer. + * mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt): + Use mm-with-unibyte-current-buffer. * mml2015.el (mml): Require. - (mml2015-mailcrypt-encrypt, mml2015-gpg-encrypt): Use - mm-with-unibyte-current-buffer. + (mml2015-mailcrypt-encrypt, mml2015-gpg-encrypt): + Use mm-with-unibyte-current-buffer. * nnheader.el (gnus-util): Require. @@ -2656,7 +2650,7 @@ * gnus-registry.el (gnus-registry-fetch-extra) (gnus-registry-store-extra, gnus-registry-group-count): New functions. (gnus-registry-fetch-group, gnus-registry-delete-group) - (gnus-registry-add-group): Changed to work with extra data element + (gnus-registry-add-group): Change to work with extra data element if present. 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> @@ -2693,8 +2687,8 @@ 2003-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org> - * message.el (message-forward-subject-name-subject): Decode - string when forwarding. + * message.el (message-forward-subject-name-subject): + Decode string when forwarding. 2003-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -2756,7 +2750,7 @@ 2003-04-30 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-button-prefer-mid-or-mail): Fixed typo in + * gnus-art.el (gnus-button-prefer-mid-or-mail): Fix typo in doc-string. 2003-05-01 Steve Youngs <youngs@xemacs.org> @@ -2778,20 +2772,20 @@ 2003-04-30 Teodor Zlatanov <tzz@lifelogs.com> - * gnus-registry.el (gnus-registry-split-fancy-with-parent): Added - diagnostic message. + * gnus-registry.el (gnus-registry-split-fancy-with-parent): + Add diagnostic message. (gnus-registry-grep-in-list): Don't run when word is nil. (gnus-registry-fetch-message-id-fast): New function. (gnus-registry-delete-group, gnus-registry-add-group): Make sure the id and group are not nil. (gnus-registry-register-message-ids): New function. - (gnus-register-action): Optimized logical flow. - (gnus-summary-prepare-hook): Added gnus-registry-register-message-ids. + (gnus-register-action): Optimize logical flow. + (gnus-summary-prepare-hook): Add gnus-registry-register-message-ids. 2003-04-30 Kai Großjohann <kai.grossjohann@gmx.net> - * gnus-delay.el (gnus-delay-article): Call - `gnus-agent-queue-setup' to create the delay group. + * gnus-delay.el (gnus-delay-article): + Call `gnus-agent-queue-setup' to create the delay group. * gnus-agent.el (gnus-agent-queue-setup): Support optional arg for the (queue) group name. @@ -2804,17 +2798,17 @@ 2003-04-30 Kevin Greiner <kgreiner@xpediantsolutions.com> * gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-name): - Wrapped in eval-when-compile. + Wrap in eval-when-compile. (gnus-agent-mode): Bind gnus-agent-go-online to nil as you shouldn't be asked twice to go online with each server. (gnus-agent-get-undownloaded-list, gnus-agent-fetch-articles, gnus-agent-crosspost, gnus-agent-flush-cache, gnus-agent-fetch-session, gnus-agent-unread-articles, gnus-agent-uncached-articles, gnus-agent-regenerate-group, - gnus-agent-group-covered-p): Expanded pop macros used for + gnus-agent-group-covered-p): Expand pop macros used for effect. Avoids compilation warning in emacs 21.3. - * gnus-int.el (gnus-open-server): Restructured to only open + * gnus-int.el (gnus-open-server): Restructure to only open nnagent when gnus-plugged is nil. 2003-04-29 Teodor Zlatanov <tzz@lifelogs.com> @@ -2830,7 +2824,7 @@ 2003-04-29 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-button-alist): Fixed CTAN regexp. + * gnus-art.el (gnus-button-alist): Fix CTAN regexp. 2003-04-29 Teodor Zlatanov <tzz@lifelogs.com> @@ -2892,7 +2886,7 @@ * gnus-art.el (gnus-mime-display-multipart-as-mixed) (gnus-mime-display-multipart-alternative-as-mixed) - (gnus-mime-display-multipart-related-as-mixed): Added doc-strings, + (gnus-mime-display-multipart-related-as-mixed): Add doc-strings, allow customization. 2003-04-27 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -2909,7 +2903,7 @@ 2003-04-27 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-registry.el (gnus-register-spool-action): Replaced literal + * gnus-registry.el (gnus-register-spool-action): Replace literal carriage-return character with its escape sequence. 2003-04-27 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -2921,7 +2915,7 @@ * gnus.el: Remove gnus-functionp throughout. - * gnus-util.el (gnus-functionp): Removed. + * gnus-util.el (gnus-functionp): Remove. * gnus-msg.el (gnus-summary-wide-reply-with-original): Doc fix. @@ -2985,8 +2979,8 @@ * gnus-start.el (message-make-date): Autoload rather than requiring message. - * gnus-group.el (gnus-group-name-charset-group-alist): Use - mm-coding-system-p. + * gnus-group.el (gnus-group-name-charset-group-alist): + Use mm-coding-system-p. (gnus-cache-active-altered): Defvar when compiling. (gnus-group-delete-group): Re-write to help avoid warnings. @@ -3032,12 +3026,12 @@ 2003-04-22 Paul Jarc <prj@po.cwru.edu> - * gnus-util.el (gnus-merge): Added "type" argument to match CL + * gnus-util.el (gnus-merge): Add "type" argument to match CL merge and gnus-sum.el's expectations. 2003-04-21 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-button-url-regexp): Added nntp. + * gnus-art.el (gnus-button-url-regexp): Add nntp. * message.el (message-generate-headers-first): Default to '(references). @@ -3089,8 +3083,8 @@ * spam.el (spam-split): Allow a particular check as a parameter, e.g. (: spam-split 'spam-use-bogofilter). (spam-mark-only-unseen-as-spam): New parameter, see doc. - (spam-mark-junk-as-spam-routine): Use - spam-mark-only-unseen-as-spam, simplify routine to take advantage + (spam-mark-junk-as-spam-routine): + Use spam-mark-only-unseen-as-spam, simplify routine to take advantage of gnus-newsgroup-unread as well as gnus-newsgroup-unseen. 2003-04-17 Teodor Zlatanov <tzz@lifelogs.com> @@ -3103,7 +3097,7 @@ * gnus-registry.el (gnus-registry-clear) (gnus-registry-fetch-group, gnus-registry-grep-in-list) (gnus-registry-split-fancy-with-parent): New functions. - (gnus-register-spool-action, gnus-register-action): Simplified the + (gnus-register-spool-action, gnus-register-action): Simplify the format. (gnus-registry): New customization group. (gnus-registry-unfollowed-groups): New variable. @@ -3154,9 +3148,9 @@ * spam-report.el (Module): New module for spam reporting. - * gnus.el (spam-process): Added - gnus-group-spam-exit-processor-report-gmane to the list of choices. - (gnus-install-group-spam-parameters): Defined new spam exit processor. + * gnus.el (spam-process): + Add gnus-group-spam-exit-processor-report-gmane to the list of choices. + (gnus-install-group-spam-parameters): Define new spam exit processor. * spam.el (autoload): Autoload spam-report-gmane when needed. (spam-report-gmane-register-routine): Glue for spam-report.el. @@ -3200,7 +3194,7 @@ 2003-04-16 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-make-cat): Added optional parameter to + * gnus-agent.el (gnus-agent-make-cat): Add optional parameter to specify a predicate other than false. (gnus-category-read): Use the new feature to create a 'default' category with a 'short' predicate. @@ -3214,7 +3208,7 @@ 2003-04-15 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-split): Added save-restriction to save-excursion. + * spam.el (spam-split): Add save-restriction to save-excursion. 2003-04-15 Julien Avarre <julien@avarre.com> @@ -3276,8 +3270,8 @@ 2003-04-13 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-group-pathname): Bind - gnus-command-method so that gnus-agent-directory will always + * gnus-agent.el (gnus-agent-group-pathname): + Bind gnus-command-method so that gnus-agent-directory will always return a valid directory. * gnus-cache.el (gnus-cache-enter-article): Remove article from gnus-newsgroup-undownloaded so that the summary will display the @@ -3300,13 +3294,13 @@ 2003-04-12 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-art.el (gnus-article-next-page): Use - gnus-article-over-scroll. + * gnus-art.el (gnus-article-next-page): + Use gnus-article-over-scroll. (gnus-article-over-scroll): New variable. * message.el (message-newline-and-reformat): Place a boundary before filling. - (message-make-forward-subject-function): Changed default to + (message-make-forward-subject-function): Change default to message-forward-subject-name-subject. (message-forward-subject-name-subject): New function. @@ -3314,16 +3308,15 @@ * gnus-sum.el (gnus-summary-line-message-size): Ditto. - * gnus-cus.el (gnus-group-parameters): Removed "which see". + * gnus-cus.el (gnus-group-parameters): Remove "which see". - * mml.el (mml-minibuffer-read-file): Bind - completion-ignored-extensions to nil. + * mml.el (mml-minibuffer-read-file): + Bind completion-ignored-extensions to nil. * message.el (message-fix-before-sending): Comment fix. (message-fix-before-sending): Make hidden headers visible. (message-hide-headers): Bind after-change-functions to nil. - (message-forbidden-properties): Put invisible and intangible - back. + (message-forbidden-properties): Put invisible and intangible back. (message-strip-forbidden-properties): Ignore message-hidden text. * gnus-msg.el: Hide headers. @@ -3332,8 +3325,7 @@ (message-hide-headers): New function. (message-hide-header-p): New function. (message-hide-header-p): Change logic. - (message-forbidden-properties): Remove intangible nil invisible - nil. + (message-forbidden-properties): Remove intangible nil invisible nil. (message-hide-headers): Narrow to headers. 2003-04-12 Jesper Harder <harder@ifa.au.dk> @@ -3348,7 +3340,7 @@ * gnus-agent.el (gnus-agent-get-undownloaded-list): Articles in the CACHE are now detected and handled the same as an article downloaded into the agent. - (gnus-agent-group-path): Modified to match nnmail-group-pathname + (gnus-agent-group-path): Modify to match nnmail-group-pathname so that the agent front-end and back-end (nnagent) always use the same directory. (gnus-agent-group-pathname): New function. Wrapper for @@ -3371,7 +3363,7 @@ 2003-04-09 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-write-active): Added option of + * gnus-agent.el (gnus-agent-write-active): Add option of replacing, rather than updating, the agent's active file. Do NOT use the fully qualified group name as gnus-active-to-gnus-format blindly prefixes group names with server names. @@ -3384,9 +3376,9 @@ (gnus-agent-expire-unagentized-dirs): Avoid asking to delete the same ancestor multiple times. - * gnus-async.el (gnus-asynchronous): Moved defcustom of - gnus-asynchronous away from defgroup of gnus-asynchronous. This - seems to fix an intermittant error in which loading gnus-async + * gnus-async.el (gnus-asynchronous): Move defcustom of + gnus-asynchronous away from defgroup of gnus-asynchronous. + This seems to fix an intermittant error in which loading gnus-async fails to define gnus-asynchronous (the variable). * gnus-sum.el: Concur with Steve Young, 5th argument to 'load' is @@ -3395,7 +3387,7 @@ group's active range to include fetched articles that are no longer in the server's active range. - * gnus-util.el (gnus-with-output-to-file): Removed all of the + * gnus-util.el (gnus-with-output-to-file): Remove all of the print-* bindings as they should be handled by the function doing the printing. @@ -3443,8 +3435,8 @@ 2003-04-06 Jesper Harder <harder@ifa.au.dk> - * mm-uu.el (mm-uu-copy-to-buffer): Copy - `buffer-file-coding-system' to the new buffer. + * mm-uu.el (mm-uu-copy-to-buffer): + Copy `buffer-file-coding-system' to the new buffer. (mm-uu-pgp-signed-extract-1): Don't copy `buffer-file-coding-system' here. @@ -3452,8 +3444,8 @@ exist in XEmacs. (mm-decode-body): Add missing quote. - * mm-uu.el (mm-uu-pgp-signed-extract-1): Set - buffer-file-coding-system. + * mm-uu.el (mm-uu-pgp-signed-extract-1): + Set buffer-file-coding-system. * mm-bodies.el (mm-decode-body): Set buffer-file-coding-system to last-coding-system-used. @@ -3484,8 +3476,8 @@ 2003-04-05 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound - print-escape-nonascii to fix more characters in compiled format + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Bound print-escape-nonascii to fix more characters in compiled format specs. 2003-04-05 Jesper Harder <harder@ifa.au.dk> @@ -3495,8 +3487,8 @@ 2003-04-04 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound - print-quoted, print-readably, print-escape-multibyte, and + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Bound print-quoted, print-readably, print-escape-multibyte, and print-level to match original behavior of gnus-prin1. This should repair the format of .newsrc.eld when using compiled format specs. @@ -3514,7 +3506,7 @@ 2003-04-03 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-button-ctan-directory-regexp): Changed meaning + * gnus-art.el (gnus-button-ctan-directory-regexp): Change meaning and value. (gnus-button-alist): Use it. @@ -3534,9 +3526,9 @@ 2003-04-02 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-util.el (gnus-message): Added doc-string. + * gnus-util.el (gnus-message): Add doc-string. - * gnus-score.el (gnus-score-find-trace): Changed behavior of `q'. + * gnus-score.el (gnus-score-find-trace): Change behavior of `q'. (gnus-score-edit-file-at-point): Goto first match when using `e'. 2003-04-01 Reiner Steib <Reiner.Steib@gmx.de> @@ -3551,22 +3543,22 @@ 2003-03-31 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound - print-escape-newlines to print escape sequences rather than + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Bound print-escape-newlines to print escape sequences rather than literal newline characters. 2003-03-31 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-button-valid-fqdn-regexp): Use - `message-valid-fqdn-regexp' for initialization. - (gnus-button-handle-info-url): Renamed and extended version of + * gnus-art.el (gnus-button-valid-fqdn-regexp): + Use `message-valid-fqdn-regexp' for initialization. + (gnus-button-handle-info-url): Rename and extended version of `gnus-button-handle-info'. - (gnus-button-message-level): Renamed from `gnus-button-mail-level'. + (gnus-button-message-level): Rename from `gnus-button-mail-level'. (gnus-button-handle-symbol, gnus-button-handle-library) (gnus-button-handle-info-keystrokes): New functions. (gnus-button-browse-level): New variable. (gnus-button-alist): Use them. Added levels. - (gnus-header-button-alist): Added levels. + (gnus-header-button-alist): Add levels. 2003-03-31 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -3578,10 +3570,10 @@ 2003-03-31 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-start.el (gnus-unload): Removed. + * gnus-start.el (gnus-unload): Remove. - * pop3.el (pop3-read-response): Use - nnheader-accept-process-output. + * pop3.el (pop3-read-response): + Use nnheader-accept-process-output. (pop3-retr): Ditto. * mm-view.el (mm-text-html-renderer-alist): Add -nolist to Lynx. @@ -3601,7 +3593,7 @@ * nnheader.el (nnheader-read-timeout): New variable. (nnheader-accept-process-output): New function. - * nntp.el (nntp-read-timeout): Removed. + * nntp.el (nntp-read-timeout): Remove. * gnus-sum.el (gnus-summary-prepare-threads): Add comment. @@ -3622,8 +3614,8 @@ 2003-03-28 Vasily Korytov <deskpot@myrealbox.com> - * message.el (message-make-in-reply-to): Use - mail-extract-address-components to determine sender's + * message.el (message-make-in-reply-to): + Use mail-extract-address-components to determine sender's name/address. 2003-03-30 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -3634,8 +3626,8 @@ valid lambda. (gnus-registry-translate-from-alist): Ditto. - * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bind - print-length to nil. + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): + Bind print-length to nil. * gnus-sum.el (gnus-summary-highlight-line-0): Indent. @@ -3658,14 +3650,14 @@ (gnus-registry-translate-from-alist): New functions. (gnus-register-spool-action): Add a spool item to the registry. - * gnus.el (gnus-variable-list): Added gnus-registry-alist to the + * gnus.el (gnus-variable-list): Add gnus-registry-alist to the list of saved variables. (gnus-registry-alist): New variable. 2003-03-28 Andreas Fuchs <asf@void.at> - * gnus-registry.el (alist-to-hashtable, hashtable-to-alist): New - functions. + * gnus-registry.el (alist-to-hashtable, hashtable-to-alist): + New functions. 2003-03-27 Simon Josefsson <jas@extundo.com> @@ -3683,7 +3675,7 @@ 2003-03-26 Kevin Ryde <user42@zip.com.au> - * gnus-sum.el (gnus-summary-find-for-reselect): Renamed from + * gnus-sum.el (gnus-summary-find-for-reselect): Rename from gnus-summary-find-uncancelled, skip temporary articles inserted by "refer" functions. @@ -3693,7 +3685,7 @@ 2003-03-26 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-fetch-selected-article): Replaced + * gnus-agent.el (gnus-agent-fetch-selected-article): Replace gnus-summary-update-line (which updated the article's face) with gnus-summary-update-download-mark (which updates the article's face by calling gnus-summary-update-line AND updates the download @@ -3717,8 +3709,8 @@ * rfc2047.el (rfc2047-header-encoding-alist): Make Followup-To same as Newsgroups. - * nntp.el (nntp-open-connection-function): Mention - nntp-open-tls-stream. + * nntp.el (nntp-open-connection-function): + Mention nntp-open-tls-stream. (nntp-open-tls-stream): New function. * tls.el: New file. @@ -3769,10 +3761,10 @@ * gnus-int.el (gnus-open-server): Catch errors in backend's open-server method. Returns nil rather than crashing startup. - * gnus-sum.el (eval-when-compile): Modified to resolve + * gnus-sum.el (eval-when-compile): Modify to resolve compile-time warnings. - * gnus-uu.el (gnus-uu-mark-series): Added informative msg. + * gnus-uu.el (gnus-uu-mark-series): Add informative msg. Reports length of series so that the user can compare N with a subject that should, if the entire series is present, contain '(.../N)'. @@ -3801,7 +3793,7 @@ 2003-03-20 Reiner Steib <Reiner.Steib@gmx.de> - * message.el (message-check-news-header-syntax): Fixed regexp. + * message.el (message-check-news-header-syntax): Fix regexp. 2003-03-20 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -3860,7 +3852,7 @@ * spam.el (spam-group-ham-mark-p, spam-group-spam-mark-p) (spam-group-ham-marks, spam-group-spam-marks): New functions. - (spam-spam-marks, spam-ham-marks): Removed in favor of the + (spam-spam-marks, spam-ham-marks): Remove in favor of the spam-marks and ham-marks parameters. (spam-generic-register-routine, spam-ham-move-routine): Use the new spam-group-{spam,ham}-mark-p functions. @@ -4030,23 +4022,23 @@ 2003-03-09 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-fetched-hook): New variable. Just - fixing the code to match the documentation. - (gnus-agent-fetch-selected-article): Replaced + * gnus-agent.el (gnus-agent-fetched-hook): New variable. + Just fixing the code to match the documentation. + (gnus-agent-fetch-selected-article): Replace gnus-summary-update-article-line with gnus-summary-update-line as the former did not correctly recalculate the thread indentation. (gnus-agent-find-parameter): The agent-predicate, if not found anywhere else, defaults to the value of gnus-agent-predicate. - (gnus-agent-fetch-session): Fixed typo; now executes + (gnus-agent-fetch-session): Fix typo; now executes gnus-agent-fetched-hook rather than the undocumented gnus-agent-fetch-hook. - (gnus-agent-fetch-group-1): Removed part of 2003-03-06 fix. The - default agent predicate is now provided by + (gnus-agent-fetch-group-1): Remove part of 2003-03-06 fix. + The default agent predicate is now provided by gnus-agent-find-parameter. (gnus-agent-message): New macro. This macro avoids potentially costly parameter evaluation when the message's level is too high to display. - (gnus-agent-expire-group-1): Disabled undo tracking in temp + (gnus-agent-expire-group-1): Disable undo tracking in temp overview buffer. Uses new gnus-agent-message macro to reduce overhead of optional messages. Reversed message levels to emphasize percent completion messages. Detailed messages of @@ -4054,8 +4046,8 @@ 2003-03-08 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-ham-move-routine): Use - spam-mark-ham-unread-before-move-from-spam-group. + * spam.el (spam-ham-move-routine): + Use spam-mark-ham-unread-before-move-from-spam-group. (spam-mark-ham-unread-before-move-from-spam-group): New variable. 2003-03-07 Teodor Zlatanov <tzz@lifelogs.com> @@ -4074,7 +4066,7 @@ 2003-03-07 Teodor Zlatanov <tzz@lifelogs.com> * spam.el (spam-use-hashcash): New variable. - (spam-list-of-checks): Added spam-use-hashcash with associated + (spam-list-of-checks): Add spam-use-hashcash with associated spam-check-hashcash. (spam-check-hashcash): New function, installed iff hashcash.el is loaded. @@ -4082,7 +4074,7 @@ 2003-03-06 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-fetch-group-1): Added default + * gnus-agent.el (gnus-agent-fetch-group-1): Add default predicate of `false' to avoid an error when a group defines no predicate. Fixed typo that disabled agent scoring (i.e. the low/high predicates should now work). @@ -4091,10 +4083,10 @@ * spam.el: Add spam-maybe-spam-stat-load to gnus-get-top-new-news-hook, remove it from gnus-get-new-news-hook. - (spam-bogofilter-register-with-bogofilter): Use - spam-bogofilter-spam-switch and spam-bogofilter-ham-switch. - (spam-bogofilter-spam-switch, spam-bogofilter-ham-switch): New - custom variables to replace "-s" and "-n". + (spam-bogofilter-register-with-bogofilter): + Use spam-bogofilter-spam-switch and spam-bogofilter-ham-switch. + (spam-bogofilter-spam-switch, spam-bogofilter-ham-switch): + New custom variables to replace "-s" and "-n". * gnus-group.el (gnus-group-get-new-news): Call the new gnus-get-top-new-news-hook hook. @@ -4113,9 +4105,9 @@ 2003-03-06 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-fetch-group-1): Added missing binding + * gnus-agent.el (gnus-agent-fetch-group-1): Add missing binding on gnus-agent-short-article. - (gnus-category-read): Replaced CL function mapcar* with new macro: + (gnus-category-read): Replace CL function mapcar* with new macro: gnus-mapcar. * gnus-util.el (gnus-mapcar): New macro. Generalizes mapcar to support functions that accept multiple parameters. A separate @@ -4144,19 +4136,19 @@ 2003-03-04 Kai Großjohann <kai.grossjohann@uni-duisburg.de> - * gnus-agent.el (gnus-function-implies-unread-1): Grok - byte-compiled functions. + * gnus-agent.el (gnus-function-implies-unread-1): + Grok byte-compiled functions. 2003-03-04 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-sum.el (gnus-auto-goto-ignores): New variable. Provides - customization between new maneuvering (which permits selecting + * gnus-sum.el (gnus-auto-goto-ignores): New variable. + Provides customization between new maneuvering (which permits selecting undownloaded articles) and old maneuvering (which skipped over undownloaded articles) behaviors. (gnus-summary-find-next): Pass through the unread and subject parameters when calling gnus-summary-find-prev. - (gnus-summary-find-next, gnus-summary-find-prev): Apply - gnus-auto-goto-ignores to filter out unacceptable articles. + (gnus-summary-find-next, gnus-summary-find-prev): + Apply gnus-auto-goto-ignores to filter out unacceptable articles. 2003-03-04 Jesper Harder <harder@ifa.au.dk> @@ -4167,8 +4159,8 @@ (mail-source-fetch-webmail): Use read-passwd. * nntp.el (nntp-send-authinfo, nntp-send-nosy-authinfo) - (nntp-open-telnet, nntp-open-via-telnet-and-telnet): Use - read-passwd. + (nntp-open-telnet, nntp-open-via-telnet-and-telnet): + Use read-passwd. * nnwarchive.el (nnwarchive-open-server): Use read-passwd. @@ -4182,14 +4174,14 @@ (sieve-manage-interactive-login): Use read-passwd. * pop3.el (pop3-read-passwd): Remove. - (pop3-movemail, pop3-get-message-count, pop3-apop): Use - read-passwd. + (pop3-movemail, pop3-get-message-count, pop3-apop): + Use read-passwd. * pgg.el (pgg-read-passphrase): Simplify. 2003-03-04 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-mode): Fixed the mode line reports + * gnus-agent.el (gnus-agent-mode): Fix the mode line reports 'plugged' when actually 'unplugged' bug. (gnus-category-read): Ignore nil values when converting an old-format category so that the new-format category will default @@ -4197,8 +4189,8 @@ 2003-03-03 Reiner Steib <Reiner.Steib@gmx.de> - * mail-source.el (mail-source-delete-old-incoming-confirm): Fixed - doc-string. + * mail-source.el (mail-source-delete-old-incoming-confirm): + Fix doc-string. 2003-03-03 Jesper Harder <harder@ifa.au.dk> @@ -4226,12 +4218,12 @@ 2003-03-03 Reiner Steib <Reiner.Steib@gmx.de> * gnus-msg.el (gnus-extended-version): Fix for 'emacs-gnus-config. - (gnus-user-agent): Fixed typo. + (gnus-user-agent): Fix typo. 2003-03-03 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-enable-expiration): Fixed documentation. - (gnus-agent-expire-group-1): Removed invalid (interactive) specifier. + * gnus-agent.el (gnus-agent-enable-expiration): Fix documentation. + (gnus-agent-expire-group-1): Remove invalid (interactive) specifier. 2003-03-03 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -4241,8 +4233,8 @@ 2003-03-03 Jesper Harder <harder@ifa.au.dk> * gnus-sum.el (gnus-highlight-selected-summary) - (gnus-article-get-xrefs, gnus-summary-show-thread): Use - `gnus-point-at-bol' and `gnus-point-at-eol' instead of + (gnus-article-get-xrefs, gnus-summary-show-thread): + Use `gnus-point-at-bol' and `gnus-point-at-eol' instead of `(progn (beginning-of-line) (point))'. It's shorter, faster, and makes it clear that we don't need the side effect. * gnus-util.el (gnus-delete-line): Do. @@ -4280,8 +4272,8 @@ 2003-03-02 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-enable-expiration): New - variable. Either ENABLE or DISABLE. Sets default behavior for + * gnus-agent.el (gnus-agent-enable-expiration): + New variable. Either ENABLE or DISABLE. Sets default behavior for selecting which groups are expired. (gnus-agent-cat-set-property, gnus-agent-cat-defaccessor, gnus-agent-set-cat-groups): Provides abstract interface for @@ -4289,8 +4281,8 @@ (gnus-agent-add-group, gnus-agent-remove-group, gnus-category-insert-line, gnus-category-edit-predicate, gnus-category-edit-score, gnus-category-edit-groups, - gnus-category-copy, gnus-category-add, gnus-group-category): Use - new agent category abstraction. + gnus-category-copy, gnus-category-add, gnus-group-category): + Use new agent category abstraction. (gnus-agent-find-parameter): New function. Search for agent configuration parameter first in the group's parameters, then its topics (if any), and then the group's category. If not found @@ -4310,11 +4302,11 @@ (gnus-category-write): Writes category file compatible with current, and previous, versions of gnus-agent. (gnus-category-make-function, gnus-category-make-function-1): - Corrected documentation; parameter is predicate NOT category. + Correct documentation; parameter is predicate NOT category. (gnus-predicate-implies-unread): Now works in more cases per the todo comment. - (gnus-function-implies-unread-1): New function. Supports - gnus-predicate-implies-unread. + (gnus-function-implies-unread-1): New function. + Supports gnus-predicate-implies-unread. (gnus-agent-expire-group): Command now provides default of group under point. (gnus-agent-expire-group-1): Obeys new agent-enable-expiration and @@ -4323,12 +4315,12 @@ (gnus-agent-request-article): Now performs its own checks of gnus-agent, gnus-agent-cache, and gnus-plugged rather than assuming that the caller will do them correctly. - (): Added one-time hook to gnus-group-prepare-hook. Detects when + (): Add one-time hook to gnus-group-prepare-hook. Detects when gnus-agent-expire-days is set to an alist. Converts said alist into group parameter so that gnus-agent-expire-days will not be needed. - * gnus-art.el (gnus-request-article-this-buffer): Conditional - checks surrounding gnus-agent-request-article removed; now + * gnus-art.el (gnus-request-article-this-buffer): + Conditional checks surrounding gnus-agent-request-article removed; now performed by gnus-agent-request-article. * gnus-cus.el (gnus-agent-parameters): New variable. List of customizable group/topic parameters that regulate the agent. @@ -4351,8 +4343,8 @@ warnings. (gnus-long-file-names): New function. Isolates platform dependent msdos-long-file-names. - (gnus-save-startup-file-via-temp-buffer): New variable. Provides - option of writing directly to file. Avoids memory exhausted + (gnus-save-startup-file-via-temp-buffer): New variable. + Provides option of writing directly to file. Avoids memory exhausted errors when .newsrc.eld is huge. (gnus-save-newsrc-file): Uses new gnus-save-startup-file-via-temp-buffer. @@ -4419,12 +4411,11 @@ nnimap-split-download-body, we add it to gnus-get-new-news-hook. (spam-list-of-statistical-checks): List of statistical splitter checks. - (spam-split): Added a widen call when a statistical check is - enabled. + (spam-split): Add a widen call when a statistical check is enabled. 2003-02-28 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-msg.el (gnus-user-agent): Changed default to + * gnus-msg.el (gnus-user-agent): Change default to 'emacs-gnus-type, renamed 'full. 2003-02-28 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -4444,8 +4435,8 @@ 2003-02-26 Simon Josefsson <jas@extundo.com> - * gnus-sum.el (gnus-summary-toggle-header): Run - gnus-article-decode-hook instead of calling a-decode-encoded-words + * gnus-sum.el (gnus-summary-toggle-header): + Run gnus-article-decode-hook instead of calling a-decode-encoded-words directly (the latter is run as part of the former). 2003-02-26 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -4460,13 +4451,13 @@ 2003-02-25 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): Added - compensation for TDMA addresses. + * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): + Add compensation for TDMA addresses. 2003-02-24 Reiner Steib <Reiner.Steib@gmx.de> * gnus-msg.el (gnus-user-agent): New variable. - (gnus-version-expose-system): Removed. Obsoleted by + (gnus-version-expose-system): Remove. Obsoleted by `gnus-user-agent'. (gnus-extended-version): Use `gnus-user-agent'. @@ -4478,17 +4469,17 @@ 2003-02-24 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-group.el (gnus-topic-mode-p): Fixed free variable + * gnus-group.el (gnus-topic-mode-p): Fix free variable reference. 2003-02-24 Kevin Greiner <kgreiner@xpediantsolutions.com> - * nnheader.el (nnheader-find-nov-line): Changed midpoint + * nnheader.el (nnheader-find-nov-line): Change midpoint calculation to avoid integer overflow. 2003-02-24 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-start.el (gnus-backup-startup-file): Fixed custom type. + * gnus-start.el (gnus-backup-startup-file): Fix custom type. 2003-02-24 Teodor Zlatanov <tzz@lifelogs.com> @@ -4528,10 +4519,10 @@ clause of the condition-case statement. Errors connecting to a server no longer terminate gnus. - * gnus-agent.el (gnus-agent-toggle-plugged): Renamed parameter to + * gnus-agent.el (gnus-agent-toggle-plugged): Rename parameter to make its use obvious. Added no-nothing case to avoid opening(closing) servers when already open(closed). - (gnus-agent-while-plugged): Added macro to facilitate internal use + (gnus-agent-while-plugged): Add macro to facilitate internal use of gnus-agent-toggle-plugged. (gnus-agent-fetch-group): Use new gnus-agent-while-plugged to temporarily open servers. @@ -4565,8 +4556,8 @@ 2003-02-20 Reiner Steib <Reiner.Steib@gmx.de> - * message.el (message-user-fqdn, message-valid-fqdn-regexp): New - variables. + * message.el (message-user-fqdn, message-valid-fqdn-regexp): + New variables. (message-make-fqdn): Use it. Improved validity check. 2003-02-23 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -4592,7 +4583,7 @@ 2003-02-23 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-art.el (gnus-button-url-regexp): Removed `. + * gnus-art.el (gnus-button-url-regexp): Remove `. 2003-02-23 Max Froumentin <mf@w3.org> @@ -4603,13 +4594,13 @@ * gnus-art.el (gnus-mime-action-on-part): Require a match interactively. - * gnus-start.el (gnus-save-newsrc-file): Use - gnus-backup-startup-file. + * gnus-start.el (gnus-save-newsrc-file): + Use gnus-backup-startup-file. (gnus-backup-startup-file): New variable. 2003-02-22 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus.el (gnus-summary-buffer-name): Moved function here. + * gnus.el (gnus-summary-buffer-name): Move function here. * gnus-draft.el (defun): Remove debug. @@ -4631,8 +4622,8 @@ 2003-02-22 Kai Großjohann <kai.grossjohann@uni-duisburg.de> - * gnus-agent.el (gnus-agent-get-undownloaded-list): Sort - `gnus-newsgroup-headers'. + * gnus-agent.el (gnus-agent-get-undownloaded-list): + Sort `gnus-newsgroup-headers'. 2003-02-22 Karl Pflästerer <sigurd@12move.de> @@ -4651,18 +4642,18 @@ just article ID. * gnus-registry.el (gnus-registry-hashtb, gnus-register-action) - (gnus-register-spool-action): Added hashtable of message ID keys + (gnus-register-spool-action): Add hashtable of message ID keys with message motion data. 2003-02-21 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): New - variable, used in `gnus-button-mid-or-mail-heuristic'. + * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): + New variable, used in `gnus-button-mid-or-mail-heuristic'. (gnus-button-mid-or-mail-heuristic): New function derived from Florian Weimer's Perl script. (gnus-button-handle-mid-or-mail): Allow a function instead of 'guess. - (gnus-button-guessed-mid-regexp): Removed. + (gnus-button-guessed-mid-regexp): Remove. 2003-02-20 Katsumi Yamaoka <yamaoka@jpl.org> @@ -4700,7 +4691,7 @@ 2003-02-19 Reiner Steib <Reiner.Steib@gmx.de> * gnus-cite.el (gnus-cite-unsightly-citation-regexp) - (gnus-cite-parse): Renamed `gnus-unsightly-citation-regexp' to + (gnus-cite-parse): Rename `gnus-unsightly-citation-regexp' to `gnus-cite-unsightly-citation-regexp'. 2003-02-19 Katsumi Yamaoka <yamaoka@jpl.org> @@ -4723,8 +4714,8 @@ 2003-02-18 Teodor Zlatanov <tzz@lifelogs.com> * spam.el (spam-ham-move-routine) - (spam-mark-spam-as-expired-and-move-routine): Use - gnus-summary-kill-process-mark and gnus-summary-yank-process-mark + (spam-mark-spam-as-expired-and-move-routine): + Use gnus-summary-kill-process-mark and gnus-summary-yank-process-mark around process-mark manipulation on the group. 2003-02-17 Kai Großjohann <kai.grossjohann@uni-duisburg.de> @@ -4739,8 +4730,8 @@ 2003-02-16 Lars Magne Ingebrigtsen <larsi@gnus.org> - * nndraft.el (nndraft-request-move-article): Bind - nnmh-allow-delete-final to t. + * nndraft.el (nndraft-request-move-article): + Bind nnmh-allow-delete-final to t. 2003-02-14 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -4821,8 +4812,8 @@ * gnus-art.el (gnus-article-only-boring-p): New. (gnus-article-skip-boring): New. * gnus-cite.el (gnus-article-boring-faces): New. - * gnus-sum.el (gnus-summary-next-page): Use - gnus-article-only-boring-p. + * gnus-sum.el (gnus-summary-next-page): + Use gnus-article-only-boring-p. 2003-02-12 Teodor Zlatanov <tzz@lifelogs.com> @@ -4842,7 +4833,7 @@ 2003-02-11 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-summary-set-agent-mark): Added call to + * gnus-agent.el (gnus-summary-set-agent-mark): Add call to gnus-summary-goto-subject as gnus-summary-update-mark operates on the current LINE. (gnus-agent-summary-fetch-group): Minimized the number of times @@ -4868,8 +4859,8 @@ 2003-02-10 Jesper Harder <harder@ifa.au.dk> - * mm-util.el (mm-mule-charset-to-mime-charset): Use - sort-coding-systems to prefer utf-8 over utf-16. + * mm-util.el (mm-mule-charset-to-mime-charset): + Use sort-coding-systems to prefer utf-8 over utf-16. 2003-02-09 Kevin Greiner <kgreiner@xpediantsolutions.com> @@ -4880,9 +4871,9 @@ If you don't want to run gnus-agent-expire, don't call it. (gnus-agent-expire): The broken test to disable gnus-agent-expire when g-a-e-d was NOT nil was removed. - (gnus-agent-article-name): Removed unnecessary input test as + (gnus-agent-article-name): Remove unnecessary input test as article IDs are always strings. - (gnus-agent-regenerate-group): Added check to protect against + (gnus-agent-regenerate-group): Add check to protect against servers that generate absurdly long article IDs. Valid IDs are less than 10 digits to avoid overflow errors. Fixed logic error when ensuring that the final article ID is present in the new @@ -4918,8 +4909,8 @@ 2003-02-08 Jesper Harder <harder@ifa.au.dk> - * gnus-art.el (gnus-article-refer-article): Use - gnus-replace-in-string. + * gnus-art.el (gnus-article-refer-article): + Use gnus-replace-in-string. * gnus-util.el (gnus-map-function): Remove unneeded let-binding. (gnus-remove-duplicates): Do. @@ -4928,12 +4919,12 @@ * gnus-int.el (gnus-internal-registry-spool-current-method): New variable. - (gnus-request-scan): Set - gnus-internal-registry-spool-current-method to gnus-command-method + (gnus-request-scan): + Set gnus-internal-registry-spool-current-method to gnus-command-method before a request-scan operation. - * gnus-registry.el (regtest-nnmail): Use - gnus-internal-registry-spool-current-method. + * gnus-registry.el (regtest-nnmail): + Use gnus-internal-registry-spool-current-method. 2003-02-07 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -4946,7 +4937,7 @@ * gnus-registry.el: New file with examples of using the hooks. - * gnus.el (gnus-registry): Added registry customization group. + * gnus.el (gnus-registry): Add registry customization group. (gnus-group-prefixed-name): Improve function to return full group name optionally. (gnus-group-guess-prefixed-name): Shortcut to @@ -4990,8 +4981,8 @@ 2003-02-07 Simon Josefsson <jas@extundo.com> - * mml-sec.el (mml-unsecure-message): Don't use kill-region. Tiny - patch from deskpot@myrealbox.com (Vasily Korytov). + * mml-sec.el (mml-unsecure-message): Don't use kill-region. + Tiny patch from deskpot@myrealbox.com (Vasily Korytov). 2003-02-02 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -5000,8 +4991,8 @@ 2003-02-06 Katsumi Yamaoka <yamaoka@jpl.org> - * gnus-art.el (gnus-mime-view-part-internally): Bind - buffer-read-only to nil. + * gnus-art.el (gnus-mime-view-part-internally): + Bind buffer-read-only to nil. 2003-02-05 Katsumi Yamaoka <yamaoka@jpl.org> @@ -5120,14 +5111,14 @@ * gnus-util.el (gnus-prin1-to-string): Bind print-length and print-level. - * gnus-art.el (article-display-x-face): Removed gray x-face stuff. - (gnus-treat-display-grey-xface): Removed. + * gnus-art.el (article-display-x-face): Remove gray x-face stuff. + (gnus-treat-display-grey-xface): Remove. * gnus-fun.el (gnus-grab-cam-face): New. - (gnus-convert-image-to-gray-x-face): Removed. - (gnus-convert-gray-x-face-to-xpm): Removed. - (gnus-convert-gray-x-face-region): Removed. - (gnus-grab-gray-x-face): Removed. + (gnus-convert-image-to-gray-x-face): Remove. + (gnus-convert-gray-x-face-to-xpm): Remove. + (gnus-convert-gray-x-face-region): Remove. + (gnus-grab-gray-x-face): Remove. * nnmail.el (nnmail-expiry-wait-function): Doc indent. @@ -5179,7 +5170,7 @@ * gnus-fun.el (gnus-face-encode): New function. (gnus-convert-png-to-face): Use it. - * gnus-sum.el (gnus-summary-make-menu-bar): Added M-& to marks. + * gnus-sum.el (gnus-summary-make-menu-bar): Add M-& to marks. 2003-01-26 Jesper Harder <harder@ifa.au.dk> @@ -5201,16 +5192,16 @@ * mm-encode.el (mm-qp-or-base64): Always QP iff mm-use-ultra-safe-encoding and cleartext PGP. - * gnus-sum.el (gnus-summary-select-article): Inhibit - redisplay (mainly for secured messages). + * gnus-sum.el (gnus-summary-select-article): + Inhibit redisplay (mainly for secured messages). * nnmail.el (nnmail-article-group): Copy body too (but don't process it). 2003-01-25 Jesper Harder <harder@ifa.au.dk> - * gnus-art.el (gnus-article-setup-buffer): Reset - gnus-button-marker-list. + * gnus-art.el (gnus-article-setup-buffer): + Reset gnus-button-marker-list. 2003-01-25 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -5219,8 +5210,8 @@ 2003-01-24 Lars Magne Ingebrigtsen <larsi@gnus.org> - * nnheader.el (nnheader-directory-separator-character): New - variable. + * nnheader.el (nnheader-directory-separator-character): + New variable. 2003-01-24 Kai Großjohann <kai.grossjohann@uni-duisburg.de> @@ -5257,8 +5248,8 @@ 2003-01-24 Teodor Zlatanov <tzz@lifelogs.com> * spam.el (spam-check-blackholes, spam-split) - (spam-mark-junk-as-spam-routine, spam-summary-prepare-exit): Added - gnus-message calls to show to users what spam.el is doing. + (spam-mark-junk-as-spam-routine, spam-summary-prepare-exit): + Add gnus-message calls to show to users what spam.el is doing. 2003-01-24 Jesper Harder <harder@ifa.au.dk> @@ -5282,7 +5273,7 @@ * gnus-async.el (gnus-async-wait-for-article): Don't use a timeout. - * nntp.el (nntp-accept-process-output): Removed timeout. + * nntp.el (nntp-accept-process-output): Remove timeout. (nntp-read-timeout): New variable. (nntp-accept-process-output): Use it. @@ -5290,14 +5281,14 @@ 2003-01-23 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-sum.el (gnus-summary-first-subject): Fixed bug that I + * gnus-sum.el (gnus-summary-first-subject): Fix bug that I introduced on 2002-01-22. (gnus-summary-first-unseen-or-unread-subject): Ditto. 2003-01-23 Teodor Zlatanov <tzz@lifelogs.com> * spam.el (spam-check-regex-headers, spam-list-of-checks) - (spam-regex-headers-spam, spam-regex-headers-ham): Added spam/ham + (spam-regex-headers-spam, spam-regex-headers-ham): Add spam/ham checks of incoming mail based on simple header regexp matching. 2003-01-22 Teodor Zlatanov <tzz@lifelogs.com> @@ -5310,16 +5301,16 @@ gnus-newsgroup-unfetched, the list of articles whose headers have not been fetched from the server. - * gnus-sum.el (gnus-summary-find-next): Removed undownloaded + * gnus-sum.el (gnus-summary-find-next): Remove undownloaded parameter as it never worked due to a bug. Added check to prevent selection of any article in the gnus-newsgroup-unfetched list. - (gnus-summary-find-prev): Added check to prevent selection of any + (gnus-summary-find-prev): Add check to prevent selection of any article in the gnus-newsgroup-unfetched list. - (gnus-summary-first-subject): Documented API. Modified - implementation so that constraints are handled independently. + (gnus-summary-first-subject): Document API. + Modified implementation so that constraints are handled independently. Added check to prevent selection of any article in the gnus-newsgroup-unfetched list. - (gnus-summary-first-unseen-subject): Updated parameters in + (gnus-summary-first-unseen-subject): Update parameters in gnus-summary-first-subject call to match new API. (gnus-summary-first-unseen-or-unread-subject): Ditto. (gnus-summary-catchup): Do not mark unfetched articles as read. @@ -5330,8 +5321,8 @@ make-obsolete-variable allows only two arguments in XEmacs and Emacs 20. - * gnus-sum.el (gnus-summary-wash-hide-map): Remove - gnus-article-hide-pgp. + * gnus-sum.el (gnus-summary-wash-hide-map): + Remove gnus-article-hide-pgp. (gnus-summary-make-menu-bar): Do. * gnus-art.el (gnus-treat-strip-pgp): Make obsolete. @@ -5348,21 +5339,21 @@ 2003-01-21 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-group-ham-processor-bogofilter-p): Fixed bug. - (spam-ifile-register-ham-routine, spam-ifile-ham-category): New - option to make ifile a purely binary classifier. + * spam.el (spam-group-ham-processor-bogofilter-p): Fix bug. + (spam-ifile-register-ham-routine, spam-ifile-ham-category): + New option to make ifile a purely binary classifier. 2003-01-21 Lars Magne Ingebrigtsen <larsi@gnus.org> - * mml-sec.el (mml-secure-sign-pgpauto): Renamed. - (mml-secure-encrypt-pgpmime): Removed double. + * mml-sec.el (mml-secure-sign-pgpauto): Rename. + (mml-secure-encrypt-pgpmime): Remove double. - * gnus-sum.el (gnus-summary-mark-article-as-replied): Added - debugging statements. + * gnus-sum.el (gnus-summary-mark-article-as-replied): + Add debugging statements. 2003-01-21 Andreas Fuchs <asf@void.at> - * mml-sec.el (mml-sign-alist): Added pgpauto. + * mml-sec.el (mml-sign-alist): Add pgpauto. 2003-01-21 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -5374,7 +5365,7 @@ 2003-01-21 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-art.el (gnus-button-url-regexp): Removed |. + * gnus-art.el (gnus-button-url-regexp): Remove |. * message.el (message-send-hook): Doc fix. @@ -5394,10 +5385,10 @@ 2003-01-18 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-regenerate-group): Added interactive form. + * gnus-agent.el (gnus-agent-regenerate-group): Add interactive form. - * gnus-sum.el (gnus-summary-update-article-line): Fixed - calculation of net characters added for use in the gnus-data + * gnus-sum.el (gnus-summary-update-article-line): + Fix calculation of net characters added for use in the gnus-data structure. 2003-01-18 Kai Großjohann <kai.grossjohann@uni-duisburg.de> @@ -5431,8 +5422,8 @@ avoid encoding problems. * mailcap.el (mailcap-ps-command): New variable. - (mailcap-mime-data): Add print entry where applicable. Use - pdftotext on a tty. + (mailcap-mime-data): Add print entry where applicable. + Use pdftotext on a tty. 2003-01-16 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -5449,7 +5440,7 @@ * spam.el (spam-get-article-as-filename): New function (unused for now). (spam-get-article-as-buffer): New function. (spam-get-article-as-string): Use spam-get-article-as-buffer. - (spam-summary-prepare-exit): Fixed bug, noticed by Malcolm Purvis. + (spam-summary-prepare-exit): Fix bug, noticed by Malcolm Purvis. 2003-01-15 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -5500,7 +5491,7 @@ (spam-group-ham-processor-bogofilter-p): New functions for the new Bogofilter interface. (spam-summary-prepare-exit): Use the new Bogofilter functions. - (spam-list-of-checks): Added spam-use-bogofilter-headers. + (spam-list-of-checks): Add spam-use-bogofilter-headers. (spam-bogofilter-score): Rewrote function. (spam-check-bogofilter): Optional score parameter, uses spam-check-bogofilter-headers better. @@ -5546,9 +5537,9 @@ 2003-01-13 Jhair Tocancipa Triana <jhair_tocancipa@gmx.net> - * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use - /usr/bin/play as default player. - (gnus-audio-play): Added ARG-DESCRIPTOR to prompt for a file to play. + * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): + Use /usr/bin/play as default player. + (gnus-audio-play): Add ARG-DESCRIPTOR to prompt for a file to play. 2003-01-14 Katsumi Yamaoka <yamaoka@jpl.org> @@ -5560,7 +5551,7 @@ fictitious headers generated by nnagent (ie. Undownloaded Article ####) in the list of articles that have not been downloaded. - * gnus-int.el (): Added require declarations to resolve + * gnus-int.el (): Add require declarations to resolve compile-time warnings. (gnus-open-server): If the server status is set to offline, recursively execute gnus-open-server to open the offline backend @@ -5568,8 +5559,8 @@ 2003-01-14 Jesper Harder <harder@ifa.au.dk> - * gnus-art.el (gnus-article-reply-with-original): Use - gnus-mark-active-p. + * gnus-art.el (gnus-article-reply-with-original): + Use gnus-mark-active-p. (gnus-article-followup-with-original): Do. 2003-01-13 Reiner Steib <Reiner.Steib@gmx.de> @@ -5596,8 +5587,8 @@ * deuglify.el (gnus-article-outlook-unwrap-lines) (gnus-article-outlook-repair-attribution) (gnus-article-outlook-rearrange-citation): New function names, - renamed from "gnus-outlook-" to "gnus-article-outlook-". Changed - doc-string. + renamed from "gnus-outlook-" to "gnus-article-outlook-". + Changed doc-string. * gnus-sum.el (gnus-summary-mode-map): Use new function names, removed `W k' key binding (use `W Y f' instead). @@ -5632,7 +5623,7 @@ 2003-01-12 Lars Magne Ingebrigtsen <larsi@gnus.org> - * mail-source.el (mail-sources): Removed autoload to make it + * mail-source.el (mail-sources): Remove autoload to make it compile under XEmacs. 2003-01-12 Raymond Scholz <ray-2003@zonix.de> @@ -5660,8 +5651,8 @@ 2003-01-12 Simon Josefsson <jas@extundo.com> - * sieve.el (sieve-upload-and-bury): New. Suggested by - kai.grossjohann@uni-duisburg.de (Kai Großjohann). + * sieve.el (sieve-upload-and-bury): New. + Suggested by kai.grossjohann@uni-duisburg.de (Kai Großjohann). * sieve-mode.el (sieve-mode-map): Bind s-u-a-b to C-c C-c. Suggested by kai.grossjohann@uni-duisburg.de (Kai Großjohann). @@ -5706,8 +5697,8 @@ 2003-01-10 Reiner Steib <Reiner.Steib@gmx.de> - * deuglify.el (gnus-outlook-deuglify-attrib-verb-regexp): Added - castellano. + * deuglify.el (gnus-outlook-deuglify-attrib-verb-regexp): + Add castellano. (gnus-outlook-display-hook): New variable. (gnus-outlook-display-article-buffer): New function. (gnus-outlook-unwrap-lines, gnus-outlook-repair-attribution) @@ -5716,8 +5707,8 @@ (gnus-article-outlook-deuglify-article): Use `g-o-d-a-b'. * gnus-sum.el: Added autoloads. - (gnus-summary-mode-map): Added gnus-summary-wash-deuglify-map. - (gnus-summary-make-menu-bar): Added "(Outlook) Deuglify" menu. + (gnus-summary-mode-map): Add gnus-summary-wash-deuglify-map. + (gnus-summary-make-menu-bar): Add "(Outlook) Deuglify" menu. 2003-01-11 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -5765,7 +5756,7 @@ * gnus-fun.el (gnus-face-from-file): New function. (gnus-convert-face-to-png): Ditto. - * gnus-art.el (gnus-ignored-headers): Added Face. + * gnus-art.el (gnus-ignored-headers): Add Face. 2003-01-10 Simon Josefsson <jas@extundo.com> @@ -5787,13 +5778,13 @@ * spam-stat.el (spam-stat): Typo fix. (spam-stat-install-hooks): New variable. - (spam-stat-split-fancy-spam-group): Added documentation clarification. + (spam-stat-split-fancy-spam-group): Add documentation clarification. (spam-stat-split-fancy-spam-threshhold): New variable. (spam-stat-install-hooks): Make hooks conditional. (spam-stat-split-fancy): Use spam-stat-split-fancy-spam-threshhold. - * gnus.el (gnus-group-ham-exit-processor-stat, spam-process): Add - spam-stat ham/spam processor symbols. + * gnus.el (gnus-group-ham-exit-processor-stat, spam-process): + Add spam-stat ham/spam processor symbols. 2003-01-10 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -5811,7 +5802,7 @@ 2003-01-09 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-check-ifile): Fixed call-process-region to use the + * spam.el (spam-check-ifile): Fix call-process-region to use the db parameter only if it's set. (spam-ifile-register-with-ifile): Ditto. @@ -5857,17 +5848,17 @@ * spam.el: Fixed the BBDB autoloads again, using bbdb-search-simple now (which is not a macro, thank god). - * gnus.el (ham-process-destination): Added new parameter for + * gnus.el (ham-process-destination): Add new parameter for destination of ham articles found in spam groups at summary exit. * spam.el (spam-get-ifile-database-parameter): use spam-ifile-database-path. (spam-check-ifile, spam-ifile-register-with-ifile): use spam-get-ifile-database-parameter. - (spam-ifile-database-path): Added new parameter for ifile's database. + (spam-ifile-database-path): Add new parameter for ifile's database. (spam-move-spam-nonspam-groups-only): New parameter to determine if spam should be moved from all groups or only some. - (spam-summary-prepare-exit): Fixed logic to use + (spam-summary-prepare-exit): Fix logic to use spam-move-spam-nonspam-groups-only when deciding to invoke spam-mark-spam-as-expired-and-move-routine; always invoke that routine after the spam has been expired-or-moved in case there's @@ -5879,8 +5870,8 @@ * gnus-spec.el (gnus-parse-complex-format): %~ => ~*. - * gnus-agent.el (gnus-agent-fetch-selected-article): Use - gnus-summary-update-article-line. + * gnus-agent.el (gnus-agent-fetch-selected-article): + Use gnus-summary-update-article-line. 2003-01-08 Simon Josefsson <jas@extundo.com> @@ -5889,7 +5880,7 @@ 2003-01-07 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-check-ifile): Fixed the spam-ifile-all-categories + * spam.el (spam-check-ifile): Fix the spam-ifile-all-categories logic, finally. 2003-01-08 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -5914,21 +5905,21 @@ * message.el (message-make-mail-followup-to, message-generate-unsubscribed-mail-followup-to): New function names. Renamed functions: "-mft" -> "-mail-followup-to". - (message-make-mft, message-gen-unsubscribed-mft): Removed function + (message-make-mft, message-gen-unsubscribed-mft): Remove function names. * mml.el (mml-preview-insert-mail-followup-to): New function name. - (mml-preview-insert-mft): Removed function name. + (mml-preview-insert-mft): Remove function name. (mml-preview): Use new function names. * gnus-art.el (gnus-article-edit-mode-map): Use new function names. - * message.el (message-mode-field-menu): Moved header related + * message.el (message-mode-field-menu): Move header related commands from "Message" to "Field" menu. 2003-01-07 Reiner Steib <Reiner.Steib@gmx.de> - * message.el (message-generate-headers-first): Added customization + * message.el (message-generate-headers-first): Add customization if variable is a list. 2003-01-07 Michael Shields <shields@msrl.com> @@ -5940,8 +5931,8 @@ * gnus-msg.el (gnus-debug): Use ignore-errors. - * gnus-agent.el (gnus-agent-fetch-selected-article): Use - `gnus-summary-update-line'. + * gnus-agent.el (gnus-agent-fetch-selected-article): + Use `gnus-summary-update-line'. 2003-01-08 Simon Josefsson <jas@extundo.com> @@ -5969,8 +5960,8 @@ 2003-01-07 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-sum.el (gnus-summary-make-menu-bar): Added - gnus-summary-refer-thread to thread menu. + * gnus-sum.el (gnus-summary-make-menu-bar): + Add gnus-summary-refer-thread to thread menu. 2003-01-07 Kevin Greiner <kgreiner@xpediantsolutions.com> @@ -5986,16 +5977,16 @@ * spam.el (spam-check-ifile, spam-ifile-register-with-ifile) (spam-ifile-register-spam-routine) - (spam-ifile-register-ham-routine): Added ifile functionality that + (spam-ifile-register-ham-routine): Add ifile functionality that does not use ifile-gnus.el to classify and register articles. (spam-get-article-as-string): Convenience function. - (spam-summary-prepare-exit): Added ifile spam and ham registration. + (spam-summary-prepare-exit): Add ifile spam and ham registration. (spam-ifile-all-categories, spam-ifile-spam-category) - (spam-ifile-path, spam-ifile): Added customization options. + (spam-ifile-path, spam-ifile): Add customization options. - * gnus.el (gnus-group-ham-exit-processor-ifile): Added ifile ham + * gnus.el (gnus-group-ham-exit-processor-ifile): Add ifile ham exit processor. - (spam-process): Added gnus-group-ham-exit-processor-ifile to the + (spam-process): Add gnus-group-ham-exit-processor-ifile to the list of choices. 2003-01-07 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -6005,7 +5996,7 @@ 2003-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> - * nnweb.el (nnweb-asynchronous-p): Changed to nil. + * nnweb.el (nnweb-asynchronous-p): Change to nil. 2003-01-07 Simon Josefsson <jas@extundo.com> @@ -6033,14 +6024,14 @@ 2003-01-06 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-fetch-group): Modified to permit execution + * gnus-agent.el (gnus-agent-fetch-group): Modify to permit execution in either the group or summary buffer. New command "JS", in summary buffer, will fetch articles per the group's category, predicate, and processable flags. (gnus-agent-summary-fetch-series): Rewritten to call gnus-agent-session-fetch-group once with all articles in the series. - (gnus-agent-summary-fetch-group): Fixed bug and modified code to + (gnus-agent-summary-fetch-group): Fix bug and modified code to return list of fetched articles. (gnus-agent-fetch-articles): Split fetch list into sublists such that the article buffer is only slightly larger than @@ -6055,9 +6046,9 @@ When called in the group buffer, articles that can not be fetched are AUTOMATICALLY MARKED AS READ. - * gnus-sum.el (): Modified eval-when-compile to minimize + * gnus-sum.el (): Modify eval-when-compile to minimize misleading compilation warnings. - (gnus-update-summary-mark-positions): Changed code to use + (gnus-update-summary-mark-positions): Change code to use gnus-undownloaded-mark rather than gnus-downloaded-mark. * nnheader.el (nnheader-insert-nov-file): Do not try to insert an @@ -6071,18 +6062,18 @@ determine the appropriate course of action. Instead, two function implementations are provided and the nntp-report function value is bound to the appropriate implementation. - (nntp-retrieve-data): Moved nntp-report call to end of implementation. + (nntp-retrieve-data): Move nntp-report call to end of implementation. (nntp-with-open-group): Now binds nntp-report's function cell rather than binding gnus-with-open-group-first-pass. Added a condition-case to detect a quit during a nntp command. When the quit occurs, the current connection is closed as a fetch articles request could have several megabytes queued up for reading. - (nntp-retrieve-headers): Bind articles to itself. If - nntp-with-open-group repeats this command, I must have access to + (nntp-retrieve-headers): Bind articles to itself. + If nntp-with-open-group repeats this command, I must have access to the original list of articles. (nntp-retrieve-groups): Ditto for groups. (nntp-retrieve-articles): Ditto for articles. - (*): Replaced nntp-possibly-change-group calls to + (*): Replace nntp-possibly-change-group calls to nntp-with-open-group forms in all, but one, occurrence. (nntp-accept-process-output): Bug fix. Detect when called with null process. @@ -6106,8 +6097,8 @@ * mm-url.el (mm-url-program): Doc fix. - * message.el (message-mode-map): Rebound - message-insert-wide-reply. + * message.el (message-mode-map): + Rebound message-insert-wide-reply. 2003-01-05 Katsumi Yamaoka <yamaoka@jpl.org> @@ -6118,9 +6109,9 @@ * spam.el: Fixed line lengths to 80 chars or less. - * gnus-sum.el (gnus-read-mark-p): Added the spam-mark as a + * gnus-sum.el (gnus-read-mark-p): Add the spam-mark as a "not-read" mark. - (gnus-summary-mark-forward): Added the spam-mark to the list of + (gnus-summary-mark-forward): Add the spam-mark to the list of marks not to be marked as "read" when viewed. 2003-01-05 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -6170,8 +6161,8 @@ 2003-01-04 Kevin Ryde <user42@zip.com.au> - * gnus-art.el (gnus-mime-jka-compr-maybe-uncompress): New - function. + * gnus-art.el (gnus-mime-jka-compr-maybe-uncompress): + New function. 2003-01-04 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -6215,7 +6206,7 @@ (spam-generic-register-routine, spam-BBDB-register-routine) (spam-ifile-register-routine, spam-blacklist-register-routine) (spam-whitelist-register-routine): New functions. - (spam-summary-prepare-exit): Added summary exit processing (expire + (spam-summary-prepare-exit): Add summary exit processing (expire or move) of spam-marked articles for spam groups; added slots for all the spam-*-register-routine functions. @@ -6254,8 +6245,8 @@ 2003-01-02 Jesper Harder <harder@ifa.au.dk> - * gnus-group.el (gnus-group-fetch-charter): Use - http://TLH.news-admin.org/charters/GROUPNAME as a fallback. + * gnus-group.el (gnus-group-fetch-charter): + Use http://TLH.news-admin.org/charters/GROUPNAME as a fallback. 2003-01-02 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -6316,13 +6307,13 @@ * gnus.el (nnheader): Require nnheader. - * nndraft.el (nndraft-request-associate-buffer): Use - make-local-variable. + * nndraft.el (nndraft-request-associate-buffer): + Use make-local-variable. 2003-01-02 Michael Shields <shields@msrl.com> - * nndraft.el (nndraft-request-associate-buffer): Make - write-contents-hooks buffer-local before setting it. + * nndraft.el (nndraft-request-associate-buffer): + Make write-contents-hooks buffer-local before setting it. 2003-01-02 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -6344,11 +6335,11 @@ 2003-01-01 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-summary-prepare-exit): Added slots for spam- and + * spam.el (spam-summary-prepare-exit): Add slots for spam- and ham-processing of articles; use the new spam-group-(spam|ham)-contents-p functions. - (spam-group-spam-contents-p, spam-group-ham-contents-p): New - convenience functions. + (spam-group-spam-contents-p, spam-group-ham-contents-p): + New convenience functions. (spam-mark-junk-as-spam-routine): Use the new spam-group-spam-contents-p function. @@ -6360,13 +6351,13 @@ (gnus-group-spam-exit-processor-whitelist) (gnus-group-spam-exit-processor-BBDB) (gnus-group-spam-classification-spam) - (gnus-group-spam-classification-ham): Added new symbols for the + (gnus-group-spam-classification-ham): Add new symbols for the spam-process and spam-contents parameters. - * spam.el (spam-ham-marks, spam-spam-marks): Changed list + * spam.el (spam-ham-marks, spam-spam-marks): Change list customization and list itself to store mark symbol rather than mark character. - (spam-bogofilter-register-routine): Added logic to generate mark + (spam-bogofilter-register-routine): Add logic to generate mark values list from spam-ham-marks and spam-spam-marks, so (member) would work. @@ -6376,10 +6367,10 @@ 2003-01-01 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-ham-marks, spam-spam-marks): Changed list + * spam.el (spam-ham-marks, spam-spam-marks): Change list customization and list itself to store mark symbol rather than mark character. - (spam-bogofilter-register-routine): Added logic to generate mark + (spam-bogofilter-register-routine): Add logic to generate mark values list from spam-ham-marks and spam-spam-marks, so (member) would work. @@ -6396,16 +6387,16 @@ message-cross-post-note-function): New variables names. (message-xpost-old-target, message-xpost-default, message-xpost-note, message-fup2-note, - message-xpost-note-function): Removed variable names. + message-xpost-note-function): Remove variable names. (message-cross-post-followup-to-header, message-cross-post-insert-note, message-cross-post-followup-to): New function names. (message-xpost-fup2-header, message-xpost-insert-note, - message-xpost-fup2): Removed function names. + message-xpost-fup2): Remove function names. 2002-12-30 Reiner Steib <Reiner.Steib@gmx.de> - * message.el (message-send-mail): Added message-cleanup-headers to + * message.el (message-send-mail): Add message-cleanup-headers to prevent newlines in headers. 2003-01-01 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -6417,8 +6408,8 @@ 2003-01-01 Wes Hardaker <wes@hardakers.net> - * gnus-sum.el (gnus-summary-display-while-building): New - variable. + * gnus-sum.el (gnus-summary-display-while-building): + New variable. 2003-01-01 Raymond Scholz <ray-2003@zonix.de> @@ -6435,8 +6426,8 @@ lambda form. (message-draft-headers): New variable. - * gnus-msg.el (gnus-inews-make-draft-meta-information): New - function. + * gnus-msg.el (gnus-inews-make-draft-meta-information): + New function. (gnus-setup-message): Use it. * message.el (message-generate-headers-first): Doc fix. @@ -6455,8 +6446,8 @@ 2002-12-31 Raymond Scholz <ray-2002@zonix.de> - * deuglify.el (gnus-outlook-rearrange-article): Use - `transpose-regions' instead of tempering the kill-ring. + * deuglify.el (gnus-outlook-rearrange-article): + Use `transpose-regions' instead of tempering the kill-ring. (gnus-article-outlook-deuglify-article): Rehighlight article instead of a complete redisplay. @@ -6515,7 +6506,7 @@ 2002-12-30 Reiner Steib <Reiner.Steib@gmx.de> - * message.el (message-completion-alist): Added "Mail-Followup-To" + * message.el (message-completion-alist): Add "Mail-Followup-To" and "Mail-Copies-To". 2002-07-21 Jesper Harder <harder@ifa.au.dk> @@ -6528,10 +6519,10 @@ * spam.el (spam-use-dig): New variable for blackhole checking through dig.el. - (spam-check-blackholes): Added dig.el checking functionality and + (spam-check-blackholes): Add dig.el checking functionality and more verbose reporting; query-dig is autoloaded from dig.el. (spam-use-blackholes): Disabled by default. - (spam-blackhole-servers): Removed rbl.maps.vix.com from the + (spam-blackhole-servers): Remove rbl.maps.vix.com from the blackhole servers list. 2002-12-30 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -6555,7 +6546,7 @@ 2002-08-10 Jari Aalto <jari.aalto@poboxes.com> - * nnmail.el (nnmail-split-it): Added tracing to + * nnmail.el (nnmail-split-it): Add tracing to `:' split rule. 2002-08-13 Hrvoje Niksic <hniksic@xemacs.org> @@ -6581,7 +6572,7 @@ * gnus-topic.el (gnus-topic-display-missing-topic): New function. (gnus-topic-goto-missing-group): Use it. - * message.el (message-required-news-headers): Removed Lines. + * message.el (message-required-news-headers): Remove Lines. (message-reply): Don't insert References first. (message-followup): Ditto. (message-make-references): New function. @@ -6702,7 +6693,7 @@ 2002-12-12 Kevin Greiner <kgreiner@xpediantsolutions.com> - * gnus-agent.el (gnus-agent-fetch-selected-article): Added call to + * gnus-agent.el (gnus-agent-fetch-selected-article): Add call to gnus-summary-update-download-mark to update the article in the summary. @@ -6712,14 +6703,14 @@ gnus-summary-normal-uncached-face, gnus-summary-low-uncached-face) New faces. - * gnus-agent.el (gnus-agent-downloaded-article-face): REMOVED. I - added this on 2002-11-23 but it just wasn't working out as + * gnus-agent.el (gnus-agent-downloaded-article-face): REMOVED. + I added this on 2002-11-23 but it just wasn't working out as intended. The idea isn't entirely dead, three new faces gnus-summary-*-uncached-face are being added to gnus.el to provide the basis for an improved implementation. - (gnus-agent-read-servers): Undo the change made on 2002-11-23. The - proper file to open is lib/servers. - (gnus-summary-set-agent-mark): Expanded documentation. Unmarking + (gnus-agent-read-servers): Undo the change made on 2002-11-23. + The proper file to open is lib/servers. + (gnus-summary-set-agent-mark): Expand documentation. Unmarking (i.e. removing the article from gnus-newsgroup-downloadable) will now restore the article's default mark rather than simply setting no mark. @@ -6730,8 +6721,8 @@ (gnus-agent-summary-fetch-group): Keep gnus-newsgroup-undownloaded up to date. Call new gnus-summary-update-download-mark to keep summary buffer up-to-date. - (gnus-agent-fetch-selected-article): Keep - gnus-newsgroup-undownloaded up to date. + (gnus-agent-fetch-selected-article): + Keep gnus-newsgroup-undownloaded up to date. (gnus-agent-fetch-articles): Return list of articles that were successfully fetched. (gnus-agent-check-overview-buffer): No more thingatpt. @@ -6749,14 +6740,14 @@ downloaded/undownloaded mark is no longer stored as the article's mark. - * gnus-salt.el (gnus-tree-highlight-node): Added uncached as + * gnus-salt.el (gnus-tree-highlight-node): Add uncached as gnus-summary-highlight may use it. Added downloaded as gnus-summary-highlight was using it. - * gnus-sum.el (gnus-undownloaded-mark): Changed from ?@ to ?- as + * gnus-sum.el (gnus-undownloaded-mark): Change from ?@ to ?- as the download mark now follows Kai's +/- convention. - (gnus-downloaded-mark): Added ?+ mark. - (gnus-summary-highlight): Added rules to select + (gnus-downloaded-mark): Add ?+ mark. + (gnus-summary-highlight): Add rules to select gnus-summary-high-uncached-face, gnus-summary-normal-uncached-face, and gnus-summary-low-uncached-face. Removed the @@ -6770,7 +6761,7 @@ you don't have to agentize every server that you use. (gnus-update-summary-mark-positions): Completed support for the download type of mark. - (gnus-summary-insert-line): Added undownloaded to the parameters. + (gnus-summary-insert-line): Add undownloaded to the parameters. (gnus-summary-prepare-threads): Set gnus-tmp-downloaded for reference by the gnus-summary-line-format-spec. @@ -6816,8 +6807,8 @@ 2002-12-09 Kai Großjohann <kai.grossjohann@uni-duisburg.de> - * nntp.el (nntp-send-command): Braino in last commit. Replace - `and' with `or'. + * nntp.el (nntp-send-command): Braino in last commit. + Replace `and' with `or'. 2002-12-08 Kai Großjohann <kai.grossjohann@uni-duisburg.de> @@ -6850,7 +6841,7 @@ 2002-11-29 Kai Großjohann <kai.grossjohann@uni-duisburg.de> - * gnus-art.el (gnus-inhibit-mime-unbuttonizing): Moved here from + * gnus-art.el (gnus-inhibit-mime-unbuttonizing): Move here from gnus-sum. Made into a user option. * gnus-sum.el (gnus-simplify-ignored-prefixes) @@ -6911,7 +6902,7 @@ (gnus-summary-mark-article-as-unread) (gnus-mark-article-as-unread, gnus-summary-highlight-line): Reformatting to avoid long lines. - (gnus-inhibit-mime-unbuttonizing): Moved to gnus-art. + (gnus-inhibit-mime-unbuttonizing): Move to gnus-art. 2002-11-28 Daiki Ueno <ueno@unixuser.org> @@ -6933,15 +6924,15 @@ 2002-11-26 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-agent.el (gnus-agent-uncached-articles): If - gnus-agent-load-alist fails, return ARTICLES. + * gnus-agent.el (gnus-agent-uncached-articles): + If gnus-agent-load-alist fails, return ARTICLES. * nnrss.el (nnrss-group-alist): Update the link of Jabber. 2002-11-26 Kai Großjohann <kai.grossjohann@uni-duisburg.de> - * gnus-sum.el (gnus-summary-insert-old-articles): Remove - superfluous function call. + * gnus-sum.el (gnus-summary-insert-old-articles): + Remove superfluous function call. (gnus-summary-catchup-all, gnus-summary-catchup-all-and-exit): Add warning to docstring. @@ -6952,8 +6943,8 @@ 2002-11-26 Kai Großjohann <kai.grossjohann@uni-duisburg.de> - * gnus-agent.el (gnus-agent-check-overview-buffer): Explicitly - require thingatpt (for number-at-point) and protect against + * gnus-agent.el (gnus-agent-check-overview-buffer): + Explicitly require thingatpt (for number-at-point) and protect against deactivate-mark being unbound (on XEmacs). 2002-11-25 Kai Großjohann <kai.grossjohann@uni-duisburg.de> @@ -6968,8 +6959,8 @@ 2002-11-24 Kai Großjohann <kai.grossjohann@uni-duisburg.de> - * gnus-sum.el (gnus-summary-insert-old-articles): Use - gnus-remove-from-range instead of gnus-range-difference which + * gnus-sum.el (gnus-summary-insert-old-articles): + Use gnus-remove-from-range instead of gnus-range-difference which doesn't exist. 2002-11-23 Kevin Greiner <kgreiner@xpediantsolutions.com> @@ -6979,11 +6970,11 @@ (gnus-agent-article-alist): Format change. Add documentation. (gnus-agent-summary-mode-map): New keybinding `J s' for fetching process-marked articles. - (gnus-agent-summary-fetch-series): Command for `J s'. Articles - in the series are individually fetched to minimize lose of + (gnus-agent-summary-fetch-series): Command for `J s'. + Articles in the series are individually fetched to minimize lose of content due to an error/quit. - (gnus-agent-synchronize-flags-server, gnus-agent-add-server): Use - gnus-message instead of message. + (gnus-agent-synchronize-flags-server, gnus-agent-add-server): + Use gnus-message instead of message. (gnus-agent-read-servers): Use file lib/methods instead of lib/servers. TODO: Why? (gnus-summary-set-agent-mark): Adapt to new agent-alist format. @@ -6992,7 +6983,7 @@ (gnus-agent-fetch-selected-article): Don't use history. (gnus-agent-save-history, gnus-agent-enter-history) (gnus-agent-article-in-history-p, gnus-agent-history-path): - Removed function; history is not used anymore. + Remove function; history is not used anymore. (gnus-agent-fetch-articles): Fix handling of crossposted articles. (gnus-agent-crosspost): Started rewrite then realized that a typo in gnus-agent-fetch-articles ensures that this function is never @@ -7022,8 +7013,8 @@ (gnus-agent-regenerate-group): No longer needs to be called from gnus-agent-regenerate. Individual groups may be regenerated. The regeneration code now fixes duplicate, and mis-ordered, NOV entries. - The article fetch dates are validated in the article alist. The - article alist is pruned of entries that do not reference existing + The article fetch dates are validated in the article alist. + The article alist is pruned of entries that do not reference existing NOV entries. All changes are computed then applied with inhibit-quit bound to t. As a result, it is now safe to quit out of regeneration. The optional clean parameter has been replaced with @@ -7031,11 +7022,11 @@ regeneration gets the appropriate setting from gnus-agent-consider-all-articles. The new reread parameter will result in fetched, or all, articles being marked as unread. - (gnus-agent-regenerate): Removed code to regenerate the history + (gnus-agent-regenerate): Remove code to regenerate the history file as it is no longer used. - * gnus-start.el (gnus-make-ascending-articles-unread): New - function, for efficient mass-marking. + * gnus-start.el (gnus-make-ascending-articles-unread): + New function, for efficient mass-marking. * gnus-sum.el (gnus-summary-highlight): Use new face for downloaded articles. @@ -7045,7 +7036,7 @@ line. (gnus-summary-highlight-line): Use new face for downloaded articles. - (gnus-summary-insert-old-articles): Improved performance by + (gnus-summary-insert-old-articles): Improve performance by replacing the initial LIST of older articles with a compressed RANGE of older articles. Some servers appear to lie about their active range so the original list could contain millions @@ -7069,8 +7060,8 @@ 2002-11-19 Simon Josefsson <jas@extundo.com> - * gnus-sum.el (gnus-summary-morse-message): Load - morse.el (unmorse-region not autoloaded in Emacs 20 nor XEmacs). + * gnus-sum.el (gnus-summary-morse-message): + Load morse.el (unmorse-region not autoloaded in Emacs 20 nor XEmacs). (unmorse-region): Autoload it instead. 2002-11-18 Simon Josefsson <jas@extundo.com> @@ -7097,13 +7088,13 @@ 2002-11-17 ShengHuo ZHU <zsh@cs.rochester.edu> - * message.el (message-set-auto-save-file-name): Use - make-directory, to avoid the dependence on gnus-util. + * message.el (message-set-auto-save-file-name): + Use make-directory, to avoid the dependence on gnus-util. 2002-11-16 Simon Josefsson <jas@extundo.com> * nnimap.el (nnimap-callback-callback-function): - (nnimap-callback-buffer): Removed, these cannot be global but must + (nnimap-callback-buffer): Remove, these cannot be global but must be embedded into the callback. (nnimap-make-callback): New. Embedd article number, callback and buffer in function. @@ -7119,8 +7110,8 @@ 2002-11-11 Simon Josefsson <jas@extundo.com> - * pgg.el (pgg-encrypt, pgg-decrypt, pgg-sign, pgg-verify): Display - output when called interactively. + * pgg.el (pgg-encrypt, pgg-decrypt, pgg-sign, pgg-verify): + Display output when called interactively. 2002-11-08 Katsumi Yamaoka <yamaoka@jpl.org> @@ -7201,15 +7192,15 @@ works better. (gnus-agent-fetch-headers): New implementation from Kevin Greiner. Uses gnus-agent-article-alist to store information - about fetched messages which aren't on the server anymore. The - trick is to return a list of considered messages to the caller, + about fetched messages which aren't on the server anymore. + The trick is to return a list of considered messages to the caller, but to only fetch those which haven't been fetched yet. 2002-10-30 Simon Josefsson <jas@extundo.com> * pgg-def.el (pgg-passphrase-cache-expiry): New, defcustom. - * pgg.el (pgg-passphrase-cache-expiry): Removed. + * pgg.el (pgg-passphrase-cache-expiry): Remove. 2002-10-30 TSUCHIYA Masatoshi <tsuchiya@namazu.org> @@ -7217,14 +7208,14 @@ versions of emacs-w3m than 1.3.3. * mm-view.el (mm-w3m-mode-command-alist) - (mm-w3m-mode-dont-bind-keys, mm-w3m-mode-ignored-keys): Removed. + (mm-w3m-mode-dont-bind-keys, mm-w3m-mode-ignored-keys): Remove. (mm-w3m-mode-map): Undefined for Emacs21 and XEmacs. - (mm-setup-w3m): Simplified. + (mm-setup-w3m): Simplify. (mm-w3m-local-map-property): New function. (mm-inline-text-html-render-with-w3m): Use it. - * gnus-art.el (gnus-article-wash-html-with-w3m): Use - mm-w3m-local-map-property. + * gnus-art.el (gnus-article-wash-html-with-w3m): + Use mm-w3m-local-map-property. 2002-10-29 Katsumi Yamaoka <yamaoka@jpl.org> @@ -7240,7 +7231,7 @@ 2002-10-28 Josh Huber <huber@alum.wpi.edu> - * mml.el (mml-mode-map): Fixed keybindings for mml-secure-* + * mml.el (mml-mode-map): Fix keybindings for mml-secure-* functions. 2002-10-28 Mark A. Hershberger <mah@everybody.org> @@ -7256,8 +7247,8 @@ 2002-10-25 Kai Großjohann <kai.grossjohann@uni-duisburg.de> - * gnus-agent.el (gnus-agent-save-fetched-headers): Create - directory if it doesn't exist. + * gnus-agent.el (gnus-agent-save-fetched-headers): + Create directory if it doesn't exist. (gnus-agent-fetch-headers): Remove old cruft that tried to abstain from downloading articles more than once if gnus-agent-consider-all-articles was true. This is now done @@ -7289,8 +7280,8 @@ * gnus-agent.el (gnus-agent-fetched-headers): New variable, contains range of headers that have been fetched by the agent already. Compare gnus-agent-article-alist. - (gnus-agent-file-header-cache): Like - gnus-agent-file-loading-cache, but for gnus-agent-fetched-headers. + (gnus-agent-file-header-cache): + Like gnus-agent-file-loading-cache, but for gnus-agent-fetched-headers. (gnus-agent-fetch-headers): Improve comment. Revert to old seen/recent logic. Remember which headers have been fetched before and don't fetch @@ -7351,7 +7342,7 @@ * gnus-group.el (gnus-fetch-group): Allow an optional specification of the articles to select. - * gnus-srvr.el (gnus-server-prepare): Removed superfluous cdr. + * gnus-srvr.el (gnus-server-prepare): Remove superfluous cdr. 2002-10-20 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> @@ -7363,8 +7354,8 @@ 2002-10-20 Steve Youngs <youngs@xemacs.org> - * pgg-parse.el (pgg-parse-public-key-algorithm-alist): XEmacs - doesn't have the 'alist custom type, use cons cells instead. + * pgg-parse.el (pgg-parse-public-key-algorithm-alist): + XEmacs doesn't have the 'alist custom type, use cons cells instead. (pgg-parse-symmetric-key-algorithm-alist): Ditto. (pgg-parse-hash-algorithm-alist): Ditto. (pgg-parse-compression-algorithm-alist): Ditto. @@ -7441,8 +7432,8 @@ (nnheader-remove-cr-followed-by-lf): New function. (nnheader-ms-strip-cr): Use the above function. - * gnus-agent.el (gnus-agent-regenerate-group): Call - `nnheader-remove-body'; use `nnheader-parse-naked-head' instead of + * gnus-agent.el (gnus-agent-regenerate-group): + Call `nnheader-remove-body'; use `nnheader-parse-naked-head' instead of `nnheader-parse-head'. * gnus-cache.el (gnus-cache-possibly-enter-article): Ditto. @@ -7463,8 +7454,8 @@ 2002-10-16 Katsumi Yamaoka <yamaoka@jpl.org> * spam-stat.el: Check for the existence of hash functions instead - of the Emacs version to decide whether to load cl. Suggested by - Kai Großjohann. + of the Emacs version to decide whether to load cl. + Suggested by Kai Großjohann. 2002-10-15 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> @@ -7487,7 +7478,7 @@ 2002-10-11 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-check-ifile): Added ifile as a spam checking + * spam.el (spam-check-ifile): Add ifile as a spam checking backend, and spam-use-ifle as the variable to toggle that check. 2002-10-12 Simon Josefsson <jas@extundo.com> @@ -7526,7 +7517,7 @@ * mml2015.el (mml2015-pgg-decrypt): Set gnus details even when decrypt failed. - (mml2015-trust-boundaries-alist): Removed. + (mml2015-trust-boundaries-alist): Remove. (mml2015-gpg-extract-signature-details): Don't use it. (mml2015-unabbrev-trust-alist): New. (mml2015-gpg-extract-signature-details): Use it. @@ -7547,8 +7538,8 @@ * pgg-gpg.el (pgg-gpg-verify-region): Filter out stuff into output buffer and error buffer depending on type of information. - * mml2015.el (mml2015-gpg-extract-signature-details): Parse - --status-fd stuff even if gpg.el is not used (revert earlier + * mml2015.el (mml2015-gpg-extract-signature-details): + Parse --status-fd stuff even if gpg.el is not used (revert earlier change). (mml2015-pgg-{clear-,}verify): Store both output and errors as gnus details. @@ -7594,8 +7585,8 @@ 2002-10-08 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> - * gnus-agent.el (gnus-agent-fetch-selected-article): Bind - gnus-agent-current-history. + * gnus-agent.el (gnus-agent-fetch-selected-article): + Bind gnus-agent-current-history. 2002-10-06 Simon Josefsson <jas@extundo.com> @@ -7623,8 +7614,8 @@ * pgg-gpg.el (pgg-gpg-encrypt-region): Make signencrypt work. - * pgg-pgp.el (pgg-pgp-verify-region): Inline - binary-write-decoded-region from MEL. + * pgg-pgp.el (pgg-pgp-verify-region): + Inline binary-write-decoded-region from MEL. * pgg.el (pgg-encrypt-region): Support sign. @@ -7679,13 +7670,13 @@ (pgg-string-as-unibyte): Defalias. (pgg-parse-armor-region): Use it. - * pgg-gpg.el (pgg-gpg-process-region): Use - pgg-temporary-file-directory. + * pgg-gpg.el (pgg-gpg-process-region): + Use pgg-temporary-file-directory. * luna.el: Don't def-edebug. - * pgg-pgp5.el (pgg-scheme-verify-region): Inline - binary-write-decoded-region from MEL. + * pgg-pgp5.el (pgg-scheme-verify-region): + Inline binary-write-decoded-region from MEL. * pgg-pgp5.el, pgg-gpg.el: Don't require mel. @@ -7790,8 +7781,8 @@ * gnus-art.el (gnus-article-mode-syntax-table): Make M-. work in article buffers. - * nnimap.el (nnimap-fixup-unread-after-getting-new-news): Autoload - it just in case. + * nnimap.el (nnimap-fixup-unread-after-getting-new-news): + Autoload it just in case. (nnimap-update-unseen): New function; update unseen count in `n-m-info'. (nnimap-close-group): Call it. @@ -7924,8 +7915,8 @@ * gnus-art.el (gnus-button-handle-apropos-variable): Fall back to apropos if apropos-variable does not exist. (gnus-button-guessed-mid-regexp) - (gnus-button-handle-describe-prefix, gnus-button-alist): Better - regexes. + (gnus-button-handle-describe-prefix, gnus-button-alist): + Better regexes. (gnus-button-handle-describe-function) (gnus-button-handle-describe-variable): Doc fix. (gnus-button-handle-describe-key, gnus-button-handle-apropos) @@ -7960,8 +7951,8 @@ 2002-09-23 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-button-guessed-mid-regexp): Improved regexp. - (gnus-button-alist): Improved regexp for + * gnus-art.el (gnus-button-guessed-mid-regexp): Improve regexp. + (gnus-button-alist): Improve regexp for gnus-button-handle-mid-or-mail (false positives), fixed gnus-button-handle-man entries. @@ -7972,8 +7963,8 @@ 2002-09-23 Paul Jarc <prj@po.cwru.edu> - * nnmaildir.el: Store article numbers persistently. General - revision. + * nnmaildir.el: Store article numbers persistently. + General revision. (nnmaildir-request-expire-articles): Handle 'immediate and 'never for nnmail-expiry-wait; delete instead of moving if 'force is given. @@ -8015,8 +8006,8 @@ * gnus-msg.el (gnus-configure-posting-styles): Sort results. - * gnus-art.el (gnus-article-reply-with-original): Correct - with-current-buffer scope. + * gnus-art.el (gnus-article-reply-with-original): + Correct with-current-buffer scope. * message.el (message-completion-alist): Add Reply-To, From, etc. @@ -8043,7 +8034,7 @@ describtion and menu. (message-change-subject, message-xpost-fup2): Signal error if current header is empty. - (message-xpost-insert-note): Changed insert position. + (message-xpost-insert-note): Change insert position. (message-archive-note): Ensure to insert note in message body (not in head). (message-archive-header, message-archive-note) @@ -8056,7 +8047,7 @@ (message-subject-trailing-was-query) (message-subject-trailing-was-ask-regexp) (message-subject-trailing-was-regexp): New variables. - (message-to-list-only): Added doc-string and menu entry. + (message-to-list-only): Add doc-string and menu entry. * message-utils.el: Removed. Functions are now in message.el. @@ -8177,8 +8168,8 @@ 2002-09-03 Katsumi Yamaoka <yamaoka@jpl.org> - * gnus-util.el (gnus-frame-or-window-display-name): Exclude - invalid display names. + * gnus-util.el (gnus-frame-or-window-display-name): + Exclude invalid display names. 2002-08-30 Reiner Steib <Reiner.Steib@gmx.de> @@ -8220,8 +8211,8 @@ 2002-08-27 Simon Josefsson <jas@extundo.com> - * gnus-msg.el (posting-charset-alist): Use - gnus-define-group-parameter instead of defcustom. + * gnus-msg.el (posting-charset-alist): + Use gnus-define-group-parameter instead of defcustom. (gnus-put-message): Handle SPC in GCC. (gnus-inews-insert-gcc): Ditto. (gnus-inews-insert-archive-gcc): Ditto. @@ -8326,12 +8317,12 @@ 2002-08-11 Reiner Steib <Reiner.Steib@gmx.de> * message-utils.el (message-xpost-default) - (message-xpost-fup2-header, message-xpost-fup2): Fixed Typos. + (message-xpost-fup2-header, message-xpost-fup2): Fix Typos. 2002-08-09 Simon Josefsson <jas@extundo.com> - * message.el (message-canlock-password): Set - canlock-password-for-verify to newly generated canlock-password. + * message.el (message-canlock-password): + Set canlock-password-for-verify to newly generated canlock-password. When Emacs is restarted, Custom makes sure this is set, but during the same session we must set it manually. @@ -8389,7 +8380,7 @@ * nnweb.el (nnweb-type, nnweb-type-definition) (nnweb-gmane-create-mapping, nnweb-gmane-wash-article) - (nnweb-gmane-search, nnweb-gmane-identity): Added gmane + (nnweb-gmane-search, nnweb-gmane-identity): Add gmane functionality. * nnweb.el: Removed old non-functioning search engines. @@ -8401,8 +8392,8 @@ * flow-fill.el (fill-flowed): Disable filladapt-mode. - * gnus-sieve.el (gnus-sieve-guess-rule-for-article): Don't - regexp-quote, Cyrus Sieve is fixed. + * gnus-sieve.el (gnus-sieve-guess-rule-for-article): + Don't regexp-quote, Cyrus Sieve is fixed. * sieve-manage.el (sieve-manage-deletescript): New function. @@ -8420,13 +8411,13 @@ * mm-decode.el (mm-inline-text-html-with-images): Doc fix. (mm-w3m-safe-url-regexp): New user option. - * mm-view.el (mm-inline-text-html-render-with-w3m): Use - `mm-w3m-safe-url-regexp' to bind `w3m-safe-url-regexp'. + * mm-view.el (mm-inline-text-html-render-with-w3m): + Use `mm-w3m-safe-url-regexp' to bind `w3m-safe-url-regexp'. 2002-07-23 Karl Kleinpaste <karl@charcoal.com> - * gnus-sum.el (gnus-summary-delete-article): Force - nnmail-expiry-target to 'delete, so that absolute deletion + * gnus-sum.el (gnus-summary-delete-article): + Force nnmail-expiry-target to 'delete, so that absolute deletion happens when absolute deletion is requested. 2002-07-21 Nevin Kapur <nevin@jhu.edu> @@ -8487,8 +8478,8 @@ 2002-07-06 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-topic.el (gnus-topic-indent, gnus-topic-unindent): Change - cdaar to cdar and car. + * gnus-topic.el (gnus-topic-indent, gnus-topic-unindent): + Change cdaar to cdar and car. * nnsoup.el (nnsoup-retrieve-headers, nnsoup-request-type) (nnsoup-read-active-file, nnsoup-article-to-area): Ditto. @@ -8574,8 +8565,8 @@ 2002-06-17 Simon Josefsson <jas@extundo.com> - * gnus-start.el (gnus-clear-system, gnus-read-newsrc-file): Make - sure to write byte-compiled versions of gnus-*-format-alist to + * gnus-start.el (gnus-clear-system, gnus-read-newsrc-file): + Make sure to write byte-compiled versions of gnus-*-format-alist to .newsrc.eld. 2002-06-16 Bjørn Mork <bmork@dod.no> @@ -8594,7 +8585,7 @@ * nnheader.el (nnheader-file-name-translation-alist): Set the default value for MS Windows systems. - * gnus-ems.el (nnheader-file-name-translation-alist): Removed. + * gnus-ems.el (nnheader-file-name-translation-alist): Remove. 2002-06-14 Katsumi Yamaoka <yamaoka@jpl.org> @@ -8660,8 +8651,8 @@ * gnus-msg.el (gnus-group-mail, gnus-group-news) (gnus-group-post-news, gnus-summary-mail-other-window) - (gnus-summary-news-other-window, gnus-summary-post-news): Bind - gnus-article-copy to nil, thereby inhibiting the `header' posting + (gnus-summary-news-other-window, gnus-summary-post-news): + Bind gnus-article-copy to nil, thereby inhibiting the `header' posting style match to use data from last viewed article. Suggested by Hrvoje Niksic. @@ -8753,8 +8744,8 @@ 2002-05-20 Jason Baker <jbaker@cs.utah.edu> (tiny change) - * gnus-art.el (gnus-request-article-this-buffer): Try - reconnecting if you don't get the message. + * gnus-art.el (gnus-request-article-this-buffer): + Try reconnecting if you don't get the message. 2002-05-20 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -8840,7 +8831,7 @@ 2002-05-06 Josh Huber <huber@alum.wpi.edu> - * mml2015.el (mml2015-gpg-encrypt): Changed name of optional + * mml2015.el (mml2015-gpg-encrypt): Change name of optional argument, and fixed compiler warning. (Added autoload for gpg-encrypt). @@ -8864,10 +8855,10 @@ * mml-sec.el (mml-signencrypt-style): New. * mml-sec.el (mml-pgpmime-encrypt-buffer): Accept optional argument `sign'. - * mml-sec.el (mml-secure-message-encrypt-pgp): Changed default to + * mml-sec.el (mml-secure-message-encrypt-pgp): Change default to signencrypt. * mml-sec.el (mml-secure-message-encrypt-pgpmime): Ditto. - * mml.el (mml-generate-mime-1): Changed logic so a part which is + * mml.el (mml-generate-mime-1): Change logic so a part which is both signed & encryped is processed in one operation (rather than two separate ops: sign, then encrypt). * mml2015.el (mml2015-gpg-extract-signature-details): Give some @@ -8903,8 +8894,8 @@ 2002-05-01 Simon Josefsson <jas@extundo.com> - * imap.el (imap-parse-resp-text-code, imap-parse-status): Treat - UIDNEXT as a string. + * imap.el (imap-parse-resp-text-code, imap-parse-status): + Treat UIDNEXT as a string. * nnimap.el (nnimap-string-lessp-numerical): New function. (nnimap-retrieve-groups): Compare UIDNEXT as strings instead of @@ -8927,8 +8918,8 @@ (nnimap-mailbox-info): New internal variable. (nnimap-retrieve-groups): Implement faster new mail check. - * nnimap.el (nnimap-split-articles): Support - nnmail-cache-accepted-message-ids. + * nnimap.el (nnimap-split-articles): + Support nnmail-cache-accepted-message-ids. (nnimap-request-accept-article): Ditto. * imap.el (imap-mailbox-status-asynch): New command. @@ -9013,8 +9004,8 @@ 2002-04-23 Matthieu Moy <Matthieu.Moy@imag.fr> - * gnus-msg.el (gnus-summary-resend-message-edit): Remove - message-ignored-resent-headers, too. + * gnus-msg.el (gnus-summary-resend-message-edit): + Remove message-ignored-resent-headers, too. 2002-04-22 Björn Torkelsson <torkel@acc.umu.se> @@ -9048,7 +9039,7 @@ (message-mode): Add description for `message-to-list-only'. (message-to-list-only): New. - (message-make-mft): Changed to use the cl loop macro, and added + (message-make-mft): Change to use the cl loop macro, and added optional flag to return only the matched list (for use in new message-to-list-only function). @@ -9082,11 +9073,11 @@ 2002-04-13 Josh Huber <huber@alum.wpi.edu> - * mml-sec.el (mml-secure-message): Changed to support arbritrary + * mml-sec.el (mml-secure-message): Change to support arbritrary modes. * mml-sec.el (mml-secure-message-encrypt-(smime|pgp|pgpmime)): changed to support "signencrypt" mode. - * mml.el (mml-parse-1): Changed to support different secure modes + * mml.el (mml-parse-1): Change to support different secure modes more easily (for signencrypt). 2002-04-11 Stefan Monnier <monnier@cs.yale.edu> @@ -9107,13 +9098,13 @@ 2002-04-12 Daiki Ueno <ueno@unixuser.org> - * gnus-srvr.el (gnus-server-set-info): Clear - `gnus-server-method-cache' when `gnus-server-alist' is changed. + * gnus-srvr.el (gnus-server-set-info): + Clear `gnus-server-method-cache' when `gnus-server-alist' is changed. 2002-04-11 Simon Josefsson <jas@extundo.com> - * gnus-sum.el (gnus-summary-force-verify-and-decrypt): Force - viewing of security buttons. Thanks to Nicolas Kowalski + * gnus-sum.el (gnus-summary-force-verify-and-decrypt): + Force viewing of security buttons. Thanks to Nicolas Kowalski <Nicolas.Kowalski@imag.fr>. * smime.el (smime-CA-directory): Fix doc. Thanks to Arne @@ -9142,7 +9133,7 @@ 2002-04-07 Josh Huber <huber@alum.wpi.edu> - * message.el (message-make-mft): Changed MFT code from using + * message.el (message-make-mft): Change MFT code from using message-recipients (which included Bcc) to use only the To and CC headers. @@ -9202,8 +9193,8 @@ * nnmaildir.el: Use defstruct. Use a single copy of nnmail-extra-headers to save memory. Store server's group name prefix instead of each group's prefixed name. - * nnnil.el (nnnil-retrieve-headers, nnnil-request-list): Erase - nntp-server-buffer. + * nnnil.el (nnnil-retrieve-headers, nnnil-request-list): + Erase nntp-server-buffer. 2002-03-31 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -9272,7 +9263,7 @@ 2002-03-22 Josh Huber <huber@alum.wpi.edu> - * mml.el (mml-mode-map): Added a keybinding for + * mml.el (mml-mode-map): Add a keybinding for `mml-unsecure-message'. Also, added a menu entry for said function in the Attachments menu. @@ -9340,8 +9331,8 @@ 2002-03-12 Faried Nawaz <fn@hungry.org> (tiny change) - * message.el (message-qmail-inject-args): May be function. Adjust - doc string and custom type. + * message.el (message-qmail-inject-args): May be function. + Adjust doc string and custom type. (message-send-mail-with-qmail): Call function if m-q-i-a is a function. @@ -9367,8 +9358,8 @@ 2002-03-09 Andre Srinivasan <andre@slamdunknetworks.com> (tiny change) - * gnus-sum.el (gnus-summary-save-parts-default-mime): Remove - duplication. + * gnus-sum.el (gnus-summary-save-parts-default-mime): + Remove duplication. (gnus-summary-save-parts-type-history): Ditto. (gnus-summary-save-parts-last-directory): Ditto. @@ -9408,8 +9399,8 @@ * qp.el (quoted-printable-decode-region): Doc addition. From: Eli Zaretskii <eliz@is.elta.co.il> - * mail-source.el (make-source-make-complex-temp-name): Use - make-temp-file. + * mail-source.el (make-source-make-complex-temp-name): + Use make-temp-file. * mm-util.el (mm-make-temp-file): New function. * nneething.el (nneething-file-name): Use it. @@ -9424,8 +9415,8 @@ 2002-03-04 Paul Jarc <prj@po.cwru.edu> - * message.el (nnmaildir-article-number-to-base-name): New - function. + * message.el (nnmaildir-article-number-to-base-name): + New function. (nnmaildir-base-name-to-article-number): New function. 2002-03-04 Katsumi Yamaoka <yamaoka@jpl.org> @@ -9477,7 +9468,7 @@ * gnus-util.el (gnus-multiple-choice): New function. - * gnus-kill.el (gnus-score-insert-help): Removed, because it is + * gnus-kill.el (gnus-score-insert-help): Remove, because it is also defined in gnus-score.el. 2002-03-01 Paul Jarc <prj@po.cwru.edu> @@ -9544,8 +9535,8 @@ 2002-02-22 Andre Srinivasan <andre@slamdunknetworks.com> (tiny change) - * mm-decode.el (mm-display-external): Use - mm-file-name-rewrite-functions. + * mm-decode.el (mm-display-external): + Use mm-file-name-rewrite-functions. 2002-02-22 Paul Jarc <prj@po.cwru.edu> @@ -9559,13 +9550,13 @@ 2002-02-21 Paul Jarc <prj@po.cwru.edu> - * nnmaildir.el (nnmaildir-request-expire-articles): Use - nnmail-expiry-wait* if expire-age parameter is not set. + * nnmaildir.el (nnmaildir-request-expire-articles): + Use nnmail-expiry-wait* if expire-age parameter is not set. 2002-02-21 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-group.el (gnus-group-sort-groups-by-real-name): New - function. + * gnus-group.el (gnus-group-sort-groups-by-real-name): + New function. (gnus-group-sort-selected-groups-by-real-name): New function. (gnus-group-make-menu-bar): Add sort by real name. @@ -9615,8 +9606,8 @@ * rfc2231.el (rfc2231-parse-string): Support non-ascii chars. - * gnus-art.el (gnus-article-wash-html-with-w3): Remove - w3-delay-image-loads. + * gnus-art.el (gnus-article-wash-html-with-w3): + Remove w3-delay-image-loads. * mm-view.el (mm-inline-text-html-render-with-w3): Ditto. (mm-w3-prepare-buffer): Ditto. @@ -9686,7 +9677,7 @@ 2002-02-18 Katsumi Yamaoka <yamaoka@jpl.org> - * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Improved to speed + * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Improve to speed up. Suggested by Yuuichi Teranishi <teranisi@gohome.org>. * gnus-art.el (article-display-x-face): Sort gray X-Faces. @@ -9784,8 +9775,8 @@ * gnus-agent.el (gnus-get-predicate): Use nconc. - * gnus-sum.el (gnus-summary-display-make-predicate): Use - gnus-summary-display-cache as cache. + * gnus-sum.el (gnus-summary-display-make-predicate): + Use gnus-summary-display-cache as cache. * nndoc.el (nndoc-type-alist): Add mail-in-mail type. (nndoc-mail-in-mail-type-p): New function. @@ -9795,8 +9786,8 @@ * mailcap.el (mailcap-mime-data): Use enriched-decode. - * gnus-cite.el (gnus-article-fill-cited-article): Bind - use-hard-newlines to nil. + * gnus-cite.el (gnus-article-fill-cited-article): + Bind use-hard-newlines to nil. * gnus-xmas.el (gnus-xmas-image-type-available-p): Assume that image is not available if window-system is not available. @@ -9813,8 +9804,8 @@ * gnus-soup.el (gnus-soup-send-packet): Send news and mail directly instead of calling message-send-mail. - * gnus-start.el (gnus-read-descriptions-file): Use - gnus-default-charset. + * gnus-start.el (gnus-read-descriptions-file): + Use gnus-default-charset. * mm-util.el (mm-guess-mime-charset): New function. @@ -9857,16 +9848,16 @@ 2002-02-07 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-art.el (gnus-article-treat-body-boundary): Add - gnus-decoration property. + * gnus-art.el (gnus-article-treat-body-boundary): + Add gnus-decoration property. * gnus-msg.el (gnus-copy-article-buffer): Remove gnus-decoration. * gnus-art.el (gnus-article-treat-unfold-headers): Don't remove too many spaces. * rfc2047.el (rfc2047-unfold-region): Ditto. - (rfc2047-decode-region): Don't unfold. Let - gnus-article-treat-unfold-headers do it. + (rfc2047-decode-region): Don't unfold. + Let gnus-article-treat-unfold-headers do it. 2002-02-07 Matt Armstrong <matt@lickey.com> @@ -9946,8 +9937,8 @@ force, prevent errors when following up from article buffer. (gnus-article-reply-with-original): Ditto. - * binhex.el (binhex-decoder-switches): Fix doc. From - Pavel@Janik.cz (Pavel Janík). + * binhex.el (binhex-decoder-switches): Fix doc. + From Pavel@Janik.cz (Pavel Janík). 2002-02-04 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -9984,11 +9975,11 @@ * gnus-cache.el (gnus-summary-insert-cached-articles): (gnus-summary-limit-include-cached): gnus-newsgroup-cached is sorted. - * gnus-group.el (gnus-group-mark-article-read): Nreverse - gnus-newsgroups-unselected. + * gnus-group.el (gnus-group-mark-article-read): + Nreverse gnus-newsgroups-unselected. - * gnus-agent.el (gnus-summary-set-agent-mark): Use - gnus-add-to-sorted-list. + * gnus-agent.el (gnus-summary-set-agent-mark): + Use gnus-add-to-sorted-list. * gnus-sum.el (gnus-summary-update-info): gnus-newsgroup-unreads gnus-newsgroup-unselected are sorted. Use gnus-sorted-union. @@ -10003,8 +9994,8 @@ directories. (gnus-dired-print): New function. - * gnus-art.el (gnus-mime-print-part): Add argument filename. Call - ps-despool. + * gnus-art.el (gnus-mime-print-part): Add argument filename. + Call ps-despool. 2002-02-02 Simon Josefsson <jas@extundo.com> @@ -10048,11 +10039,11 @@ 2002-01-31 ShengHuo ZHU <zsh@cs.rochester.edu> - * nnfolder.el (nnfolder-request-replace-article): Unfold. Don't - use mail-header-unfold-field. + * nnfolder.el (nnfolder-request-replace-article): Unfold. + Don't use mail-header-unfold-field. - * gnus-cache.el (gnus-summary-insert-cached-articles): Use - gnus-summary-limit. + * gnus-cache.el (gnus-summary-insert-cached-articles): + Use gnus-summary-limit. * gnus-range.el (gnus-add-to-sorted-list): New function. * gnus-sum.el (gnus-mark-article-as-read): Use it. @@ -10068,8 +10059,8 @@ * gnus-msg.el (gnus-posting-styles): Add new format of header. (gnus-configure-posting-styles): Support the new format. - * mail-source.el (mail-source-bind, mail-source-bind-common): Set - edebug-form-spec to (sexp body). + * mail-source.el (mail-source-bind, mail-source-bind-common): + Set edebug-form-spec to (sexp body). Suggested by Joe Wells <jbw@izanami.cee.hw.ac.uk>. * message.el (message-reply-headers): Add doc. @@ -10095,19 +10086,19 @@ * nnagent.el (nnagent-retrieve-headers): Use gnus-sorted-difference. - * gnus-agent.el (gnus-agent-retrieve-headers): Use - gnus-sorted-difference. + * gnus-agent.el (gnus-agent-retrieve-headers): + Use gnus-sorted-difference. - * nnsoup.el (nnsoup-request-expire-articles): Use - gnus-sorted-difference. + * nnsoup.el (nnsoup-request-expire-articles): + Use gnus-sorted-difference. * nnheader.el: Autoload gnus-sorted-difference. - * nnfolder.el (nnfolder-request-expire-articles): Use - gnus-sorted-difference. + * nnfolder.el (nnfolder-request-expire-articles): + Use gnus-sorted-difference. - * gnus-cache.el (gnus-cache-retrieve-headers): Use - gnus-sorted-difference. + * gnus-cache.el (gnus-cache-retrieve-headers): + Use gnus-sorted-difference. * gnus-range.el: Autoload cookies. (gnus-sorted-difference): New function. @@ -10122,8 +10113,8 @@ * gnus-sum.el (gnus-select-newsgroup): Use gnus-sorted-difference, gnus-sorted-ndifference, and gnus-sorted-nintersection. (gnus-articles-to-read): Use gnus-sorted-difference. - (gnus-summary-limit-mark-excluded-as-read): Use - gnus-sorted-intersection and gnus-sorted-ndifference. + (gnus-summary-limit-mark-excluded-as-read): + Use gnus-sorted-intersection and gnus-sorted-ndifference. (gnus-list-of-read-articles): Use gnus-list-range-difference. (gnus-summary-insert-articles): Use gnus-sorted-difference. @@ -10139,7 +10130,7 @@ * mm-view.el (mm-w3m-mode-map): New variable. (mm-w3m-mode-command-alist): New variable. - (mm-w3m-minor-mode): Removed. + (mm-w3m-minor-mode): Remove. (mm-setup-w3m): Setup `mm-w3m-mode-map'; don't add minor mode. (mm-inline-text-html-render-with-w3m): Add keymap property to the buffer for using emacs-w3m command keys. @@ -10150,11 +10141,11 @@ (message-cite-prefix-regexp): Auto detect non word constituents. (message-cite-prefix-regexp): Don't use with-syntax-table. - * gnus-sum.el (gnus-summary-update-info): Use - gnus-list-range-intersection. + * gnus-sum.el (gnus-summary-update-info): + Use gnus-list-range-intersection. - * gnus-agent.el (gnus-agent-fetch-headers): Use - gnus-list-range-intersection. + * gnus-agent.el (gnus-agent-fetch-headers): + Use gnus-list-range-intersection. * gnus-range.el (gnus-range-normalize): Use correct predicate. (gnus-list-range-intersection): Use it. @@ -10189,8 +10180,8 @@ Don't split when the window is small, e.g. when a small *BBDB* window is the lowest one. - * gnus-agent.el (gnus-agent-retrieve-headers): Use - nnheader-find-nov-line to speed up. Use nreverse, because it is + * gnus-agent.el (gnus-agent-retrieve-headers): + Use nnheader-find-nov-line to speed up. Use nreverse, because it is sorted. Use nnheader-insert-nov-file. 2002-01-28 Katsumi Yamaoka <yamaoka@jpl.org> @@ -10208,7 +10199,7 @@ * time-date.el: Add autoload cookies. Many doc fixes. (time-add): New function. - (time-subtract): Renamed from subtract-time. + (time-subtract): Rename from subtract-time. (subtract-time): New alias for time-subtract. 2002-01-28 Katsumi Yamaoka <yamaoka@jpl.org> @@ -10254,7 +10245,7 @@ 2002-01-26 Lars Magne Ingebrigtsen <larsi@gnus.org> * nnml.el (nnml-use-compressed-files): New variable. - (nnml-filenames-are-evil): Removed. + (nnml-filenames-are-evil): Remove. (nnml-current-group-article-to-file-alist): Don't use. (nnml-update-file-alist): Inhibit. (nnml-article-to-file): Use new var. @@ -10319,7 +10310,7 @@ 2002-01-25 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-agent.el (gnus-agent-save-alist): Optimized. + * gnus-agent.el (gnus-agent-save-alist): Optimize. 2002-01-25 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -10330,15 +10321,15 @@ (gnus-server-method-cache): New variable. (gnus-server-to-method): Use it. (gnus-group-method-cache): New variable. - (gnus-find-method-for-group-1): Renamed. + (gnus-find-method-for-group-1): Rename. (gnus-find-method-for-group): New function. - (gnus-group-method-cache): Removed. + (gnus-group-method-cache): Remove. * gnus-sum.el (gnus-compute-unseen-list): Use new optimized function. * gnus-range.el (gnus-members-of-range): New function. - (gnus-list-range-intersection): Renamed. + (gnus-list-range-intersection): Rename. (gnus-inverse-list-range-intersection): New function. * gnus-sum.el (gnus-compute-unseen-list): Made into own function. @@ -10350,8 +10341,8 @@ 2002-01-25 Katsumi Yamaoka <yamaoka@jpl.org> - * mm-view.el (mm-inline-text-html-render-with-w3m): Decode - charset-encoded html contents. + * mm-view.el (mm-inline-text-html-render-with-w3m): + Decode charset-encoded html contents. 2002-01-24 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -10401,12 +10392,12 @@ 2002-01-22 Josh Huber <huber@alum.wpi.edu> - * mml.el (mml-parse-1): Fixed usage of recipients in the secure + * mml.el (mml-parse-1): Fix usage of recipients in the secure tag. 2002-01-22 Josh Huber <huber@alum.wpi.edu> - * message.el (message-font-lock-keywords): Added the secure tag. + * message.el (message-font-lock-keywords): Add the secure tag. * mml-sec.el: Added functions to generate/modify/remove the secure tag while in message mode. * mml-sec.el (mml-secure-message): New. @@ -10417,12 +10408,12 @@ * mml-sec.el (mml-secure-message-encrypt-smime): New. * mml-sec.el (mml-secure-message-encrypt-pgp): New. * mml-sec.el (mml-secure-message-encrypt-pgpmime): New. - * mml.el (mml-parse-1): Added code to recognize the secure tag and + * mml.el (mml-parse-1): Add code to recognize the secure tag and convert it to either a part or multipart depending on if there are other parts in the message. - * mml.el (mml-mode-map): Changed default sign/encrypt keybindings + * mml.el (mml-mode-map): Change default sign/encrypt keybindings to use the secure tag, rather than the part tag. - * mml.el (mml-preview): Added a save-excursion to keep cursor + * mml.el (mml-preview): Add a save-excursion to keep cursor position after doing an MML preview. 2002-01-22 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -10462,8 +10453,8 @@ 2002-01-20 Lars Magne Ingebrigtsen <larsi@gnus.org> - * nnfolder.el (nnfolder-request-accept-article): Unfold - x-from-line. + * nnfolder.el (nnfolder-request-accept-article): + Unfold x-from-line. (nnfolder-request-replace-article): Ditto. 2002-01-20 Nevin Kapur <nevin@jhu.edu> @@ -10487,8 +10478,8 @@ * message.el (message-dont-send): Doc fix. - * gnus-util.el (gnus-completing-read): Remove - inherit-input-method. + * gnus-util.el (gnus-completing-read): + Remove inherit-input-method. * gnus-art.el (gnus-treat-smiley): Doc fix. @@ -10541,8 +10532,8 @@ 2002-01-19 Daniel Pittman <daniel@rimspace.net> - * gnus-sum.el (gnus-summary-first-unseen-or-unread-subject): New - functions. + * gnus-sum.el (gnus-summary-first-unseen-or-unread-subject): + New functions. 2002-01-19 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -10551,7 +10542,7 @@ * gnus-sum.el (gnus-summary-goto-subject): Error on non-numerical articles. - * gnus-util.el (gnus-completing-read-with-default): Renamed. + * gnus-util.el (gnus-completing-read-with-default): Rename. * nnmail.el (nnmail-article-group): Clean up. @@ -10571,17 +10562,17 @@ * smiley-ems.el (smiley-region): Register smiley. (smiley-toggle-buffer): Rewrite the function. - (smiley-active): Removed. + (smiley-active): Remove. 2002-01-19 Simon Josefsson <jas@extundo.com> - * gnus-util.el (gnus-parent-id): Optimize null n case. From - Jesper Harder <harder@ifa.au.dk>. + * gnus-util.el (gnus-parent-id): Optimize null n case. + From Jesper Harder <harder@ifa.au.dk>. 2002-01-18 TSUCHIYA Masatoshi <tsuchiya@namazu.org> - * gnus-art.el (gnus-request-article-this-buffer): Call - `nneething-get-file-name' to extract the file name from the + * gnus-art.el (gnus-request-article-this-buffer): + Call `nneething-get-file-name' to extract the file name from the message id. * nneething.el (nneething-encode-file-name): New function. @@ -10649,21 +10640,21 @@ 2002-01-17 ShengHuo ZHU <zsh@cs.rochester.edu> * gnus-agent.el (gnus-agent-retrieve-headers): Use correct buffer. - (gnus-agent-braid-nov): Switch back to nntp-server-buffer. Remove - duplications. + (gnus-agent-braid-nov): Switch back to nntp-server-buffer. + Remove duplications. (gnus-agent-batch): Bind gnus-agent-confirmation-function. 2002-01-16 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-sum.el (gnus-summary-initial-limit): Inline - gnus-summary-limit-children. + * gnus-sum.el (gnus-summary-initial-limit): + Inline gnus-summary-limit-children. (gnus-summary-initial-limit): Don't limit if gnus-newsgroup-display is nil. (gnus-summary-initial-limit): No, don't. * gnus-util.el - (gnus-put-text-property-excluding-characters-with-faces): Inline - gnus-put-text-property. + (gnus-put-text-property-excluding-characters-with-faces): + Inline gnus-put-text-property. * gnus-spec.el (gnus-default-format-specs): New variable. @@ -10680,8 +10671,8 @@ * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Inline some functions. - (gnus-gather-threads-by-references): Inline - `gnus-split-references'. + (gnus-gather-threads-by-references): + Inline `gnus-split-references'. * gnus-spec.el (gnus-summary-line-format-spec): New, optimized default value of gnus-summary-line-format-spec. @@ -10691,7 +10682,7 @@ * nnslashdot.el (nnslashdot-retrieve-headers-1): A better error message. (nnslashdot-request-list): Ditto. - (nnslashdot-sid-strip): Removed. + (nnslashdot-sid-strip): Remove. 2002-01-15 Simon Josefsson <jas@extundo.com> @@ -10705,14 +10696,14 @@ 2002-01-15 TSUCHIYA Masatoshi <tsuchiya@namazu.org> - * nneething.el (nneething-request-article): Set - `nnmail-file-coding-system' to `binary' locally, in order to read + * nneething.el (nneething-request-article): + Set `nnmail-file-coding-system' to `binary' locally, in order to read files without any conversion. 2002-01-15 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-agent.el (gnus-agent-retrieve-headers): Use - nnheader-file-coding-system and nnmail-active-file-coding-system. + * gnus-agent.el (gnus-agent-retrieve-headers): + Use nnheader-file-coding-system and nnmail-active-file-coding-system. (gnus-agent-regenerate-group): Ditto. (gnus-agent-regenerate): Ditto. (gnus-agent-write-active): Ditto. @@ -10747,19 +10738,19 @@ * imap.el (imap-close): Keep going if quit. - * gnus-agent.el (gnus-agent-retrieve-headers): Erase - nntp-server-buffer. + * gnus-agent.el (gnus-agent-retrieve-headers): + Erase nntp-server-buffer. 2002-01-12 Lars Magne Ingebrigtsen <larsi@gnus.org> * mm-view.el (mm-display-inline-fontify): Require font-lock to avoid unbinding shadowed variables. - * gnus-art.el (gnus-picon-databases): Moved here. - (gnus-picons-installed-p): Moved here. + * gnus-art.el (gnus-picon-databases): Move here. + (gnus-picons-installed-p): Move here. (gnus-article-reply-with-original): Use `mark'. - * gnus.el (gnus-picon): Moved here and renamed. + * gnus.el (gnus-picon): Move here and renamed. * gnus-art.el (gnus-treat-from-picon): Only be on if picons are installed. @@ -10782,8 +10773,8 @@ 2002-01-12 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-art.el (gnus-article-reply-with-original): Use - `mark-active'. + * gnus-art.el (gnus-article-reply-with-original): + Use `mark-active'. * gnus-msg.el (gnus-summary-reply): Don't bug out on regions. @@ -10794,16 +10785,16 @@ 2002-01-12 Simon Josefsson <jas@extundo.com> * flow-fill.el (fill-flowed-display-column) - (fill-flowed-encode-columnq): New variables. Suggested by - Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann). + (fill-flowed-encode-columnq): New variables. + Suggested by Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann). (fill-flowed-encode, fill-flowed): Use them. - * message.el (message-send-news, message-send-mail): Use - m-b-s-n-p-e-h-n. + * message.el (message-send-news, message-send-mail): + Use m-b-s-n-p-e-h-n. * mml.el (autoload): Autoload fill-flowed-encode. - (mml-buffer-substring-no-properties-except-hard-newlines): New - function. + (mml-buffer-substring-no-properties-except-hard-newlines): + New function. (mml-read-part): Use it. (mml-generate-mime-1): Encode format=flowed if appropriate. (mml-insert-mime-headers): Insert format=flowed. @@ -10843,8 +10834,8 @@ gnus-article-prepare-hook. * gnus-agent.el (gnus-agent-retrieve-headers): Load agentview. - (gnus-agent-toggle-plugged): Use gnus-agent-go-online. Move - gnus-agent-possibly-synchronize-flags to the last. + (gnus-agent-toggle-plugged): Use gnus-agent-go-online. + Move gnus-agent-possibly-synchronize-flags to the last. (gnus-agent-go-online): New function. New variable. 2002-01-11 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -10904,8 +10895,8 @@ 2002-01-10 ShengHuo ZHU <zsh@cs.rochester.edu> - * nnkiboze.el (nnkiboze-request-article): Use - gnus-agent-request-article. + * nnkiboze.el (nnkiboze-request-article): + Use gnus-agent-request-article. * nnagent.el (nnagent-retrieve-headers): Don't use nnml function. Insert undownloaded NOV. @@ -10915,13 +10906,13 @@ * gnus.el (gnus-agent-cache): New variable. - * gnus-int.el (gnus-retrieve-headers): Use - gnus-agent-retrieve-headers. + * gnus-int.el (gnus-retrieve-headers): + Use gnus-agent-retrieve-headers. (gnus-request-head): Use gnus-agent-request-article. (gnus-request-body): Ditto. - * gnus-art.el (gnus-request-article-this-buffer): Use - gnus-agent-request-article. + * gnus-art.el (gnus-request-article-this-buffer): + Use gnus-agent-request-article. * gnus-sum.el (gnus-summary-read-group-1): Don't show the first article if it is undownloaded. @@ -10942,8 +10933,8 @@ 2002-01-08 ShengHuo ZHU <zsh@cs.rochester.edu> - * mm-encode.el (mm-content-transfer-encoding-defaults): Add - application/x-emacs-lisp. + * mm-encode.el (mm-content-transfer-encoding-defaults): + Add application/x-emacs-lisp. * gnus-msg.el (gnus-bug): Use application/emacs-lisp. @@ -10986,8 +10977,8 @@ 2002-01-07 TSUCHIYA Masatoshi <tsuchiya@namazu.org> * nneething.el (nneething-request-article): When a non-text file - is converted to an article, its data is encoded in base64. Call - `nneething-make-head' with options to specify MIME types. + is converted to an article, its data is encoded in base64. + Call `nneething-make-head' with options to specify MIME types. (nneething-make-head): Add optional arguments to specify MIME types. @@ -11007,13 +10998,13 @@ 2002-01-06 Simon Josefsson <jas@extundo.com> - * imap.el (imap-ssl-open, imap-ssl-open, imap-parse-fetch): Use - condition-case, not ignore-errors. + * imap.el (imap-ssl-open, imap-ssl-open, imap-parse-fetch): + Use condition-case, not ignore-errors. 2002-01-06 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-sum.el (gnus-summary-insert-old-articles): Bind - gnus-fetch-old-headers. + * gnus-sum.el (gnus-summary-insert-old-articles): + Bind gnus-fetch-old-headers. * gnus-art.el (article-display-x-face): Use the current buffer unless `W f'. Otherwise, X-Face may be shown in the header of a @@ -11023,8 +11014,8 @@ 2002-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-group.el (gnus-group-read-ephemeral-group): Fix - parameters. + * gnus-group.el (gnus-group-read-ephemeral-group): + Fix parameters. 2002-01-06 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -11034,8 +11025,8 @@ (mm-detect-coding-region): New function. (mm-detect-mime-charset-region): New function. - * gnus-sum.el (gnus-summary-show-article): Use - mm-detect-coding-region. + * gnus-sum.el (gnus-summary-show-article): + Use mm-detect-coding-region. 2002-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -11071,7 +11062,7 @@ 2002-01-05 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus.el (gnus-logo-color-alist): Added more colors from Luis. + * gnus.el (gnus-logo-color-alist): Add more colors from Luis. 2002-01-05 Keiichi Suzuki <keiichi@nanap.org> (tiny change) @@ -11096,7 +11087,7 @@ 2002-01-05 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-sum.el (gnus-thread-latest-date): New function. - (gnus-thread-sort-by-most-recent-number): Renamed. + (gnus-thread-sort-by-most-recent-number): Rename. (gnus-thread-sort-functions): Doc fix. (gnus-select-group-hook): Don't use setq on a hook. (gnus-thread-latest-date): Use date, not number. @@ -11104,14 +11095,14 @@ * gnus-agent.el (gnus-agent-expire-days): Doc fix. (gnus-agent-expire): Allow regexp of expire-days. - * gnus-art.el (gnus-article-reply-with-original): Deactivate - region. + * gnus-art.el (gnus-article-reply-with-original): + Deactivate region. (gnus-article-followup-with-original): Ditto. * gnus-sum.el (gnus-thread-highest-number): Doc fix. - * gnus-art.el (gnus-mime-display-alternative): Use - gnus-local-map-property. + * gnus-art.el (gnus-mime-display-alternative): + Use gnus-local-map-property. (gnus-mime-display-alternative): Ditto. (gnus-insert-mime-security-button): Ditto. (gnus-insert-next-page-button): Ditto. @@ -11130,7 +11121,7 @@ "X-Face: " to the data in the built-in scenario. * gnus-spec.el (gnus-parse-simple-format): Use gnus-pad-form. - (gnus-correct-pad-form): Renamed. + (gnus-correct-pad-form): Rename. (gnus-tilde-max-form): Clean up. (gnus-pad-form): Use gnus-use-correct-string-widths. @@ -11161,30 +11152,30 @@ * gnus-fun.el (gnus-display-x-face-in-from): Use face. - * gnus-ems.el (gnus-article-xface-ring-internal): Removed. - (gnus-article-xface-ring-size): Removed. - (gnus-article-display-xface): Removed. + * gnus-ems.el (gnus-article-xface-ring-internal): Remove. + (gnus-article-xface-ring-size): Remove. + (gnus-article-display-xface): Remove. (gnus-remove-image): Cleaned up. * gnus-xmas.el (gnus-xmas-create-image): Convert pbm to xbm. (gnus-xmas-create-image): Take pbm files. - (gnus-x-face): Removed. - (gnus-xmas-article-display-xface): Removed. + (gnus-x-face): Remove. + (gnus-xmas-article-display-xface): Remove. - * gnus-fun.el (gnus-display-x-face-in-from): Bind - default-enable-multibyte-characters. + * gnus-fun.el (gnus-display-x-face-in-from): + Bind default-enable-multibyte-characters. * compface.el (uncompface): Doc fix. - * gnus-art.el (gnus-article-x-face-command): Use - gnus-display-x-face-in-from. + * gnus-art.el (gnus-article-x-face-command): + Use gnus-display-x-face-in-from. * gnus-xmas.el (gnus-xmas-put-image): Return the image. * gnus-ems.el (gnus-put-image): Return the image. * gnus-fun.el (gnus-display-x-face-in-from): New function. - (gnus-x-face): Moved here. + (gnus-x-face): Move here. 2002-01-04 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -11218,9 +11209,9 @@ * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Use uncompface. - * compface.el (compface-xbm-p): Removed. + * compface.el (compface-xbm-p): Remove. - * gnus-ems.el (gnus-article-compface-xbm): Removed. + * gnus-ems.el (gnus-article-compface-xbm): Remove. (gnus-article-display-xface): Use compface. * compface.el: New file. @@ -11232,8 +11223,8 @@ 2002-01-03 Paul Jarc <prj@po.cwru.edu> - * nnmaildir.el (nnmaildir-request-expire-articles): Evaluate - the expire-group parameter once per article rather than once + * nnmaildir.el (nnmaildir-request-expire-articles): + Evaluate the expire-group parameter once per article rather than once per group; bind `nnmaildir-article-file-name' and `article' for convenience. Leave article alone when expire-group specifies the current group. @@ -11246,7 +11237,7 @@ 2002-01-03 Dave Love <d.love@dl.ac.uk> - * gnus-start.el (gnus-startup-file-coding-system): Removed. + * gnus-start.el (gnus-startup-file-coding-system): Remove. (gnus-read-init-file): Don't use it. 2002-01-03 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -11268,7 +11259,7 @@ 2002-01-03 Per Abrahamsen <abraham@dina.kvl.dk> - * gnus.el (gnus-summary-line-format): Added :link. + * gnus.el (gnus-summary-line-format): Add :link. * gnus-topic.el (gnus-topic-line-format): Ditto. * gnus-sum.el (gnus-summary-dummy-line-format): Ditto. * gnus-srvr.el (gnus-server-line-format): Ditto. @@ -11336,7 +11327,7 @@ 2002-01-02 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Renamed. + * gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Rename. * gnus-art.el (gnus-ignored-headers): Hide all X-Faces. (article-display-x-face): Display gray X-Faces. @@ -11389,10 +11380,10 @@ * gnus-fun.el: New file. (gnus-convert-image-to-x-face-command): New variable. (gnus-insert-x-face): New function. - (gnus-random-x-face): Renamed. - (gnus-x-face-from-file): Renamed. + (gnus-random-x-face): Rename. + (gnus-x-face-from-file): Rename. - * gnus-art.el (gnus-body-boundary-delimiter): Changed default to + * gnus-art.el (gnus-body-boundary-delimiter): Change default to "_". (gnus-body-boundary-delimiter): Typo fix. @@ -11442,7 +11433,7 @@ * gnus-picon.el (gnus-picon-find-face): Search MISC for all types. (gnus-picon-transform-address): Search for unknown faces as well. (gnus-picon-find-face): Don't search "news" for MISC. - (gnus-picon-user-directories): Changed default back to exclude + (gnus-picon-user-directories): Change default back to exclude "unknown". * gnus-sum.el (gnus-summary-hide-all-threads): Reversed logic. @@ -11455,13 +11446,13 @@ keystroke. (gnus-topic-goto-next-topic): Ditto. - * gnus.el (gnus-summary-line-format): Changed default. + * gnus.el (gnus-summary-line-format): Change default. * nnmail.el (nnmail-extra-headers): Change default. * gnus-sum.el (gnus-extra-headers): Change default. - * message.el (message-news-other-window): Changed "news" to + * message.el (message-news-other-window): Change "news" to "posting". (message-news-other-frame): Ditto. (message-do-send-housekeeping): Ditto. @@ -11499,8 +11490,8 @@ 2002-01-01 Steve Youngs <youngs@xemacs.org> - * gnus-xmas.el (gnus-xmas-article-display-xface): Uncomment - 'set-glyph-face' so x-face back/foreground can be set. + * gnus-xmas.el (gnus-xmas-article-display-xface): + Uncomment 'set-glyph-face' so x-face back/foreground can be set. 2001-12-31 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -11508,16 +11499,16 @@ 2002-01-01 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-art.el (gnus-treat-smiley): Renamed command. + * gnus-art.el (gnus-treat-smiley): Rename command. (gnus-article-remove-images): New command and keystroke. - * gnus-sum.el (gnus-summary-toggle-smiley): Removed. + * gnus-sum.el (gnus-summary-toggle-smiley): Remove. - * smiley-ems.el (gnus-smiley-display): Removed. + * smiley-ems.el (gnus-smiley-display): Remove. * gnus.el (gnus-version-number): Update version. - * message.el (message-text-with-property): Renamed and moved + * message.el (message-text-with-property): Rename and moved here. (message-fix-before-sending): Highlight invisible text and place point there. @@ -11528,7 +11519,7 @@ 2002-01-01 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-delay.el (gnus-delay-send-queue): Renamed. + * gnus-delay.el (gnus-delay-send-queue): Rename. * gnus-art.el (gnus-ignored-headers): More headers. @@ -11558,7 +11549,7 @@ 2001-12-31 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-group.el (gnus-group-line-format): Added %O to the default + * gnus-group.el (gnus-group-line-format): Add %O to the default value. * gnus-util.el (gnus-text-with-property): The smallest point is @@ -11591,7 +11582,7 @@ * gnus-ems.el (gnus-article-display-xface): Mark and store image. - * gnus-art.el (gnus-article-wash-status-entry): Renamed. + * gnus-art.el (gnus-article-wash-status-entry): Rename. (gnus-article-wash-status): Use it. (gnus-signature-toggle): Clean up. (gnus-add-wash-status): New function. @@ -11615,7 +11606,7 @@ * smiley-ems.el (gnus-smiley-file-types): New variable. (smiley-update-cache): Use it. (smiley-regexp-alist): Suffix-less smiley names. - (smiley-regexp-alist): Added more smileys. + (smiley-regexp-alist): Add more smileys. * gnus-sum.el (gnus-print-buffer): Made into own function. (gnus-summary-print-article): Use it. @@ -11630,8 +11621,8 @@ 2001-12-31 Simon Josefsson <jas@extundo.com> - * imap.el (imap-parse-fetch): Notice empty flags responses. From - Nic Ferrier <nferrier@tf1.tapsellferrier.co.uk>. + * imap.el (imap-parse-fetch): Notice empty flags responses. + From Nic Ferrier <nferrier@tf1.tapsellferrier.co.uk>. 2001-12-30 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -11644,15 +11635,15 @@ 2001-12-30 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-art.el (gnus-article-treat-fold-newsgroups): Don't - infloop. + * gnus-art.el (gnus-article-treat-fold-newsgroups): + Don't infloop. * gnus-sum.el (t): New `W D' map. * gnus-art.el (gnus-treat-fold-newsgroups): New variable. (gnus-article-treat-body-boundary): Clean up. - (gnus-body-boundary-face): Removed. - (gnus-article-goto-header): Moved here. + (gnus-body-boundary-face): Remove. + (gnus-article-goto-header): Move here. (gnus-article-goto-header): Allow better regexps. (gnus-article-treat-fold-newsgroups): New command. @@ -11667,7 +11658,7 @@ * mail-parse.el (mail-header-fold-line): New alias. (mail-header-unfold-line): Ditto. - * gnus-art.el (gnus-body-boundary-face): Renamed. + * gnus-art.el (gnus-body-boundary-face): Rename. (gnus-article-treat-body-boundary): Use it. (gnus-article-treat-body-boundary): Use an invisible header and a line of underline characters. @@ -11682,8 +11673,8 @@ (gnus-picon-transform-address): Use it. Set first to t for each address. - * gnus-art.el (gnus-with-article-headers): Move to here. Define - the macro then use it. + * gnus-art.el (gnus-with-article-headers): Move to here. + Define the macro then use it. (gnus-treatment-function-alist): Treat picons earlier. 2001-12-30 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -11704,7 +11695,7 @@ * gnus-xmas.el (gnus-xmas-group-startup-message): Use general colors. - * gnus.el (gnus-logo-color-alist): Moved here and renamed. + * gnus.el (gnus-logo-color-alist): Move here and renamed. (gnus-logo-color-style): Ditto. (gnus-logo-colors): Ditto. @@ -11718,26 +11709,26 @@ * ietf-drums.el (ietf-drums-parse-addresses): Accept a nil string. - * gnus-picon.el (gnus-treat-mail-picon): Renamed. + * gnus-picon.el (gnus-treat-mail-picon): Rename. * gnus-art.el (gnus-treat-cc-picon): New variable. - (gnus-treat-mail-picon): Renamed. + (gnus-treat-mail-picon): Rename. * gnus-picon.el: New implementation. - (gnus-picon-find-face): Renamed. + (gnus-picon-find-face): Rename. (gnus-treat-from-picon): Use it. - (gnus-picon-transform-address): Renamed. + (gnus-picon-transform-address): Rename. (gnus-treat-from-picon): Use it. - (gnus-picon-create-glyph): Renamed. + (gnus-picon-create-glyph): Rename. (gnus-picon-transform-address): Use it. (gnus-treat-cc-picon): New command. - * mm-decode.el (mm-create-image-xemacs): Separated out into + * mm-decode.el (mm-create-image-xemacs): Separate out into function. (mm-get-image): Use it. * gnus-art.el (gnus-treat-display-picons): Simplify. - (gnus-treat-from-picon): Renamed. + (gnus-treat-from-picon): Rename. * gnus-ems.el (gnus-create-image): New function. (gnus-put-image): New function. @@ -11764,7 +11755,7 @@ 2001-12-29 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-art.el (gnus-treat-unfold-lines): New variable. - (gnus-treat-unfold-headers): Renamed. + (gnus-treat-unfold-headers): Rename. (gnus-article-treat-unfold-headers): New command and keystroke. * rfc2047.el (rfc2047-encode-message-header): Clean up. @@ -11781,7 +11772,7 @@ 2001-12-29 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-picon.el (gnus-picons-news-directories): Removed obsolete + * gnus-picon.el (gnus-picons-news-directories): Remove obsolete alias. (gnus-picons-database): Default to list. (gnus-picons-lookup-internal): Use it. @@ -11819,8 +11810,8 @@ * gnus-art.el (gnus-treatment-function-alist): Emphasize after other treatments. - * gnus-util.el (gnus-put-overlay-excluding-newlines): New - function. + * gnus-util.el (gnus-put-overlay-excluding-newlines): + New function. * gnus-art.el (gnus-article-show-hidden-text): Remove the type from the list of hidden types. @@ -11833,7 +11824,7 @@ 2001-12-29 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-art.el (gnus-ignored-headers): Added more headers. + * gnus-art.el (gnus-ignored-headers): Add more headers. 2001-12-29 Jesper Harder <harder@ifa.au.dk> @@ -11846,13 +11837,13 @@ 2001-12-28 Simon Josefsson <jas@extundo.com> - * gnus-srvr.el (gnus-browse-foreign-server): Fix typo. From - Jesper Harder <harder@ifa.au.dk>. + * gnus-srvr.el (gnus-browse-foreign-server): Fix typo. + From Jesper Harder <harder@ifa.au.dk>. 2001-12-27 Simon Josefsson <jas@extundo.com> - * gnus-sum.el (gnus-select-newsgroup): Make - `gnus-newsgroup-unseen' sorted. Make `gnus-newsgroup-unseen' + * gnus-sum.el (gnus-select-newsgroup): + Make `gnus-newsgroup-unseen' sorted. Make `gnus-newsgroup-unseen' contain all articles (instead of none) when no seen marks have been set for the group. (gnus-update-marks): Use `gnus-range-add' on a uncompressed list @@ -11860,8 +11851,8 @@ 2001-12-26 11:00:00 Jesper Harder <harder@ifa.au.dk> - * mm-util.el (mm-iso-8859-x-to-15-region): Use - insert-before-markers. + * mm-util.el (mm-iso-8859-x-to-15-region): + Use insert-before-markers. 2001-12-26 Paul Jarc <prj@po.cwru.edu> @@ -11874,8 +11865,8 @@ 2001-12-22 22:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-group.el (gnus-group-read-ephemeral-group): Call - gnus-group-real-name. + * gnus-group.el (gnus-group-read-ephemeral-group): + Call gnus-group-real-name. * gnus-sum.el (gnus-decode-encoded-word-methods): Backslash paren. (gnus-newsgroup-variables): Ditto. @@ -11904,8 +11895,8 @@ * nnimap.el (top-level): Don't require cl. Suggested by ShengHuo ZHU <zsh@cs.rochester.edu>. - (nnimap-close-group): Don't quote KEYLIST items. Suggested by - Brian P Templeton <bpt@tunes.org>. + (nnimap-close-group): Don't quote KEYLIST items. + Suggested by Brian P Templeton <bpt@tunes.org>. 2001-12-19 17:00:00 Paul Jarc <prj@po.cwru.edu> @@ -11946,8 +11937,8 @@ * gnus-salt.el (gnus-tree-recenter, gnus-generate-tree) (gnus-generate-tree, gnus-highlight-selected-tree) - (gnus-highlight-selected-tree, gnus-tree-highlight-article): Use - it. + (gnus-highlight-selected-tree, gnus-tree-highlight-article): + Use it. * gnus-art.el (gnus-article-set-window-start) (gnus-mm-display-part, gnus-request-article-this-buffer) @@ -12004,7 +11995,7 @@ 2001-12-13 Josh Huber <huber@alum.wpi.edu> - * gnus-cus.el (gnus-extra-topic-parameters): Added topic parameter + * gnus-cus.el (gnus-extra-topic-parameters): Add topic parameter subscribe-level * gnus-topic.el (gnus-subscribe-topics): Use it. @@ -12110,8 +12101,8 @@ 2001-12-07 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * nnrss.el (nnrss-decode-entities-unibyte-string): Use - mm-url-decode-entities-nbsp. + * nnrss.el (nnrss-decode-entities-unibyte-string): + Use mm-url-decode-entities-nbsp. * nnlistserv.el, nnultimate.el, nnwarchive.el, nnweb.el: * webmail.el, nnwfm.el: Use mm-url. @@ -12131,7 +12122,7 @@ 2001-12-06 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * nnweb.el (nnweb-replace-in-string): Removed. + * nnweb.el (nnweb-replace-in-string): Remove. * gnus-util.el (gnus-replace-in-string): New function. (gnus-mode-string-quote): Use it. @@ -12179,8 +12170,8 @@ 2001-12-01 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-sum.el (gnus-summary-save-article): Nix - gnus-display-mime-function and gnus-article-prepare-hook. + * gnus-sum.el (gnus-summary-save-article): + Nix gnus-display-mime-function and gnus-article-prepare-hook. * gnus-spec.el (gnus-parse-complex-format): Properly handle %C at the beginning of lines. @@ -12216,8 +12207,8 @@ 2001-11-29 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> * message.el (message-newgroups-header-regexp) - (message-completion-alist, message-tab-body-function): Use - defcustom rather than defvar. + (message-completion-alist, message-tab-body-function): + Use defcustom rather than defvar. (message-tab): Mention `message-tab-body-function' in doc. Suggested by Karl Eichwalder. @@ -12252,8 +12243,8 @@ * message.el (message-mode): make-local-hook is harmless in Emacs 21. - * gnus-msg.el (gnus-configure-posting-styles): Use - make-local-hook. Add LOCAL for add-hook. + * gnus-msg.el (gnus-configure-posting-styles): + Use make-local-hook. Add LOCAL for add-hook. 2001-11-27 Per Abrahamsen <abraham@dina.kvl.dk> @@ -12419,8 +12410,8 @@ 2001-11-15 Per Abrahamsen <abraham@dina.kvl.dk> - * gnus-art.el (gnus-article-wash-status-strings): Use - `copy-sequence', not `copy-seq'. + * gnus-art.el (gnus-article-wash-status-strings): + Use `copy-sequence', not `copy-seq'. 2001-11-15 Per Abrahamsen <abraham@dina.kvl.dk> @@ -12435,7 +12426,7 @@ 2001-11-12 Simon Josefsson <jas@extundo.com> * mml1991.el (mml1991-use, mml1991-function-alist): New variables. - (mml1991-gpg-sign, mml1991-gpg-encrypt): Renamed, from + (mml1991-gpg-sign, mml1991-gpg-encrypt): Rename, from `mml1991-sign' and `mml1991-encrypt'. (mml1991-encrypt, mml1991-sign): New glue functions. (mml1991-mailcrypt-sign, mml1991-mailcrypt-encrypt): New functions. @@ -12466,8 +12457,8 @@ * message.el (top-level): Autoload sha1. (message-canlock-generate): Use sha1 instead of md5 (sha1 used by - canlock, no need to require two different hash algs). Suggested - by Ferenc Wagner <wferi@bolyai1.elte.hu>. + canlock, no need to require two different hash algs). + Suggested by Ferenc Wagner <wferi@bolyai1.elte.hu>. 2001-11-09 Pavel Janík <Pavel@Janik.cz> @@ -12493,13 +12484,13 @@ * sieve-mode.el (sieve-control-commands-face) (sieve-control-commands-face, sieve-action-commands-face) - (sieve-test-commands-face, sieve-tagged-arguments-face): New - faces. + (sieve-test-commands-face, sieve-tagged-arguments-face): + New faces. (sieve-font-lock-keywords): Use them. (sieve-mode): Only set font-lock-defaults in emacs. - * gnus-art.el (gnus-default-article-saver): Add - gnus-summary-save-body-in-file. + * gnus-art.el (gnus-default-article-saver): + Add gnus-summary-save-body-in-file. (gnus-summary-write-to-file): Fix doc. 2001-11-07 Simon Josefsson <jas@extundo.com> @@ -12588,7 +12579,7 @@ (nnimap-expunge): Don't use it. * imap.el (imap-callbacks): New variable. - (imap-remassoc): Copied from `gnus-remassoc'. + (imap-remassoc): Copy from `gnus-remassoc'. (imap-add-callback): New function. (imap-mailbox-expunge, imap-mailbox-close): Support asynchronous behavior. @@ -12633,8 +12624,8 @@ * smiley-ems.el (smiley-update-cache): Auto detect file type. - * message.el (message-forward-rmail-make-body): Use - save-window-excursion. + * message.el (message-forward-rmail-make-body): + Use save-window-excursion. (message-encode-message-body): Search with noerror. (message-setup-1): Convert compose-mail send-actions to message-send-actions. @@ -12715,8 +12706,8 @@ (mm-charset-synonym-alist): Remove windows-125[02]. Make other entries conditional on not having a coding system defined for them. - (mm-mule-charset-to-mime-charset): Use - find-coding-systems-for-charsets if defined. + (mm-mule-charset-to-mime-charset): + Use find-coding-systems-for-charsets if defined. (mm-charset-to-coding-system): Don't use mm-get-coding-system-list. Look in mm-charset-synonym-alist later. Add last resort search of coding systems. @@ -12742,8 +12733,8 @@ 2001-10-30 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-spec.el (gnus-parse-simple-format): Use - buffer-substring-no-properties. + * gnus-spec.el (gnus-parse-simple-format): + Use buffer-substring-no-properties. 2001-10-30 Katsumi Yamaoka <yamaoka@jpl.org> @@ -12846,8 +12837,8 @@ 2001-10-22 Simon Josefsson <jas@extundo.com> - * gnus-msg.el (gnus-extended-version): Include - system-configuration. + * gnus-msg.el (gnus-extended-version): + Include system-configuration. Suggested by Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann). 2001-10-22 Per Abrahamsen <abraham@dina.kvl.dk> @@ -12860,8 +12851,8 @@ 2001-10-21 Simon Josefsson <jas@extundo.com> * nnimap.el (nnimap): Defgroup. - (nnimap-strict-function, nnimap-strict-function-match): New - widget, from Per Abrahamsen <abraham@dina.kvl.dk>. + (nnimap-strict-function, nnimap-strict-function-match): + New widget, from Per Abrahamsen <abraham@dina.kvl.dk>. (nnimap-split-crosspost, nnimap-split-inbox) (nnimap-split-rule, nnimap-split-predicate) (nnimap-split-predicate): Defcustom. @@ -12907,9 +12898,9 @@ * message.el (message-do-auto-fill): New version that does not rely on text properties, by Simon Josefsson <jas@extundo.com>. - (message-setup-1): Removed the `message-field' property. + (message-setup-1): Remove the `message-field' property. - * gnus-draft.el (gnus-draft-edit-message): Removed the + * gnus-draft.el (gnus-draft-edit-message): Remove the `message-field' property. 2001-10-19 Per Abrahamsen <abraham@dina.kvl.dk> @@ -12945,8 +12936,8 @@ * message.el (message-check-news-header-syntax): Special case nnvirtual groups. - * gnus-sum.el (gnus-summary-respool-default-method): Changed - customize type to `symbol'. + * gnus-sum.el (gnus-summary-respool-default-method): + Change customize type to `symbol'. 2001-10-17 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -12968,13 +12959,13 @@ 2001-10-17 Per Abrahamsen <abraham@dina.kvl.dk> - * gnus-msg.el (gnus-post-method): Changed two instances of + * gnus-msg.el (gnus-post-method): Change two instances of `active' to `current' and one `null' to `not'. 2001-10-16 Katsumi Yamaoka <yamaoka@jpl.org> - * message.el (message-setup-fill-variables): Use - `normal-auto-fill-function' instead of `auto-fill-function'. + * message.el (message-setup-fill-variables): + Use `normal-auto-fill-function' instead of `auto-fill-function'. 2001-10-16 Simon Josefsson <jas@extundo.com> @@ -13040,8 +13031,8 @@ 2001-10-12 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> Suggested by Oliver Scholz <epameinondas@gmx.de>. - * message.el (message-do-auto-fill): New function. Like - `do-auto-fill' but don't fill when in the message header. + * message.el (message-do-auto-fill): New function. + Like `do-auto-fill' but don't fill when in the message header. (message-setup-1): Put a text property on the message header. (message-setup-fill-variables): Use `message-do-auto-fill'. @@ -13063,8 +13054,8 @@ 2001-10-10 Katsumi Yamaoka <yamaoka@jpl.org> - * gnus-group.el (gnus-group-name-charset-group-alist): Use - `find-coding-system' for XEmacs to check whether the coding-system + * gnus-group.el (gnus-group-name-charset-group-alist): + Use `find-coding-system' for XEmacs to check whether the coding-system `utf-8' is available. 2001-10-09 Per Abrahamsen <abraham@dina.kvl.dk> @@ -13074,8 +13065,8 @@ 2001-10-09 Per Abrahamsen <abraham@dina.kvl.dk> - * message.el (message-send-news): Allow - `gnus-group-name-charset-group-alist' to affect encoding of the + * message.el (message-send-news): + Allow `gnus-group-name-charset-group-alist' to affect encoding of the "Newsgroups" and "Followup-To" headers. 2001-10-07 Per Abrahamsen <abraham@dina.kvl.dk> @@ -13096,7 +13087,7 @@ default charset for newsgroup names in accordance with USEFOR. * gnus-group.el (gnus-group-name-charset-method-alist, - gnus-group-name-charset-group-alist): Removed "*" from doc + gnus-group-name-charset-group-alist): Remove "*" from doc strings, "*" should not be used for complex variables. 2001-10-06 Simon Josefsson <jas@extundo.com> @@ -13110,18 +13101,18 @@ `gnus-article-decode-hook's except `article-decode-charset' instead of hardcoding call to one of them. - * gnus-art.el (gnus-article-decode-hook): Add - `article-decode-group-name'. + * gnus-art.el (gnus-article-decode-hook): + Add `article-decode-group-name'. (article-decode-group-name): New function, use `g-d-n'. - * gnus-group.el (gnus-group-insert-group-line): Decode - gnus-tmp-group using `g-d-n'. + * gnus-group.el (gnus-group-insert-group-line): + Decode gnus-tmp-group using `g-d-n'. * gnus-util.el (gnus-decode-newsgroups): New function. 2001-10-06 Per Abrahamsen <abraham@dina.kvl.dk> - * gnus-srvr.el (gnus-browse-foreign-server): Fixed bug non-nil + * gnus-srvr.el (gnus-browse-foreign-server): Fix bug non-nil `gnus-group-name-charset-group-alist'. 2001-10-05 Simon Josefsson <jas@extundo.com> @@ -13283,8 +13274,8 @@ 2001-09-19 Sam Steingold <sds@gnu.org> - * gnus-win.el (gnus-buffer-configuration): Respect - `gnus-bug-create-help-buffer'. + * gnus-win.el (gnus-buffer-configuration): + Respect `gnus-bug-create-help-buffer'. 2001-09-18 Simon Josefsson <jas@extundo.com> @@ -13338,7 +13329,7 @@ 2001-09-14 Simon Josefsson <jas@extundo.com> - * gnus-start.el (gnus-group-mode-hook): Moved from gnus-group + * gnus-start.el (gnus-group-mode-hook): Move from gnus-group (otherwise e.g. gnus-agentize in .gnus overrides the customized default before gnus-group is loaded and the variable set.) @@ -13369,11 +13360,11 @@ * nndiary.el (nndiary-request-accept-article-hooks): New. * nndiary.el (nndiary-request-accept-article): Use it, check message validity. - * nndiary.el (nndiary-get-new-mail): Changed default to nil. + * nndiary.el (nndiary-get-new-mail): Change default to nil. * nndiary.el (nndiary-schedule): Fix bug (misplaced condition-case): it didn't return nil on error. * gnus-diary.el: New version. - * gnus-diary.el (gnus-diary-summary-line-format): Removed %I. + * gnus-diary.el (gnus-diary-summary-line-format): Remove %I. * gnus-diary.el (gnus-diary-header-value-history): New. * gnus-diary.el (gnus-diary-narrow-to-headers): New. * gnus-diary.el (gnus-diary-add-header): New. @@ -13383,11 +13374,11 @@ 2001-09-10 TSUCHIYA Masatoshi <tsuchiya@namazu.org> - * gnus-sum.el (gnus-select-newsgroup): Make - `gnus-current-select-method' buffer-local. + * gnus-sum.el (gnus-select-newsgroup): + Make `gnus-current-select-method' buffer-local. - * gnus-art.el (gnus-request-article-this-buffer): Refer - `gnus-current-select-method' in the current summary buffer. + * gnus-art.el (gnus-request-article-this-buffer): + Refer `gnus-current-select-method' in the current summary buffer. 2001-09-10 Daniel Pittman <daniel@rimspace.net> @@ -13395,10 +13386,10 @@ 2001-09-09 Simon Josefsson <jas@extundo.com> - * mm-decode.el (mm-inline-media-tests): Add - application/x-emacs-lisp. - (mm-attachment-override-types): Add - application/{x-,}pkcs7-signature. + * mm-decode.el (mm-inline-media-tests): + Add application/x-emacs-lisp. + (mm-attachment-override-types): + Add application/{x-,}pkcs7-signature. * gnus-srvr.el (gnus-server-mode-hook, gnus-server-exit-hook) (gnus-server-line-format, gnus-server-mode-line-format) @@ -13431,8 +13422,8 @@ (nnml-request-update-info): Don't update if marks didn't change. * gnus-agent.el (gnus-agent-any-covered-gcc) - (gnus-agent-add-server, gnus-agent-remove-server): Use - gnus-agent-method-p. + (gnus-agent-add-server, gnus-agent-remove-server): + Use gnus-agent-method-p. * gnus-art.el (gnus-buttonized-mime-types): New variable. (gnus-unbuttonized-mime-type-p): Use it. @@ -13634,8 +13625,8 @@ * gnus-spec.el (gnus-compile): Don't compile gnus-version. - * gnus-group.el (gnus-update-group-mark-positions): Bind - gnus-group-update-hook to nil. + * gnus-group.el (gnus-update-group-mark-positions): + Bind gnus-group-update-hook to nil. 2001-08-24 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -13655,8 +13646,8 @@ 2001-08-24 Simon Josefsson <jas@extundo.com> - * gnus-group.el (gnus-info-clear-data): Call - nnfoo-request-set-mark to propagate marks. Fix bug: + * gnus-group.el (gnus-info-clear-data): + Call nnfoo-request-set-mark to propagate marks. Fix bug: `gnus-group-update-line' doesn't update read range unless we call `gnus-get-unread-articles-in-group' first. @@ -13732,8 +13723,8 @@ 2001-08-20 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * nnslashdot.el (nnslashdot-retrieve-headers-1): Replace - nnslashdot-*-retrieve-headers. + * nnslashdot.el (nnslashdot-retrieve-headers-1): + Replace nnslashdot-*-retrieve-headers. (nnslashdot-request-article): Fix for slashcode 2.2. (nnslashdot-make-tuple): New function. (nnslashdot-read-groups): Use it. @@ -13775,15 +13766,15 @@ * mm-view.el (mm-inline-text): Ignore vcard errors. - * gnus-art.el (gnus-ignored-headers): Added more junk headers. + * gnus-art.el (gnus-ignored-headers): Add more junk headers. * gnus-score.el (gnus-all-score-files): Use append instead of nconc. * gnus.el (gnus-splash-face): Doc fix. - * mm-decode.el (mm-mailcap-command): Use - mm-path-name-rewrite-functions. + * mm-decode.el (mm-mailcap-command): + Use mm-path-name-rewrite-functions. (mm-path-name-rewrite-functions): New variable. * gnus-spec.el (gnus-parse-complex-format): React to ?=. @@ -13797,10 +13788,10 @@ the positional spec. (gnus-parse-complex-format): React to %C. - * gnus-ems.el (gnus-char-width): Moved here. + * gnus-ems.el (gnus-char-width): Move here. - * gnus-sum.el (gnus-select-newsgroup): Set - gnus-newsgroup-articles. + * gnus-sum.el (gnus-select-newsgroup): + Set gnus-newsgroup-articles. (gnus-unseen-mark): New variable. (gnus-newsgroup-unseen): Ditto. (gnus-newsgroup-seen): Ditto. @@ -13858,15 +13849,15 @@ 2001-08-18 Simon Josefsson <jas@extundo.com> - * gnus-util.el (gnus-remassoc, gnus-update-alist-soft): Moved from + * gnus-util.el (gnus-remassoc, gnus-update-alist-soft): Move from nnimap. - * nnimap.el (nnimap-remassoc, nnimap-update-alist-soft): Moved to + * nnimap.el (nnimap-remassoc, nnimap-update-alist-soft): Move to gnus-util. (nnimap-request-update-info-internal): Use new functions. - * nnml.el (nnml-request-set-mark, nnml-request-update-info): Use - new functions. + * nnml.el (nnml-request-set-mark, nnml-request-update-info): + Use new functions. 2001-08-18 Simon Josefsson <jas@extundo.com> @@ -13963,7 +13954,7 @@ * gnus-start.el (gnus-setup-news): Push the archive server only the server list. - * mml.el (mml-menu): Changed name to "Attachments". + * mml.el (mml-menu): Change name to "Attachments". * mm-decode.el (mm-destroy-postponed-undisplay-list): Only message when there is something to destroy. @@ -13999,8 +13990,8 @@ `nnmail-split-history' if recent is > 0. (nnimap-request-update-info-internal): Update `recent' marks. (nnimap-request-set-mark): Never set `recent' marks. - (nnimap-mark-to-predicate-alist, nnimap-mark-to-flag-alist): Add - recent. + (nnimap-mark-to-predicate-alist, nnimap-mark-to-flag-alist): + Add recent. * gnus-sum.el (gnus-recent-mark): New mark. (gnus-newsgroup-recent): New variable. @@ -14013,8 +14004,8 @@ 2001-08-12 Simon Josefsson <jas@extundo.com> - * mm-bodies.el (mm-decode-content-transfer-encoding): Returns - whether successful decoding took place. Add doc. + * mm-bodies.el (mm-decode-content-transfer-encoding): + Returns whether successful decoding took place. Add doc. 2001-08-12 Simon Josefsson <jas@extundo.com> Suggested by Per Abrahamsen <abraham@dina.kvl.dk> @@ -14051,8 +14042,8 @@ 2001-08-10 02:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-ml.el (turn-on-gnus-mailing-list-mode): Use - gnus-group-find-parameter. Suggested by Janne Rinta-Manty + * gnus-ml.el (turn-on-gnus-mailing-list-mode): + Use gnus-group-find-parameter. Suggested by Janne Rinta-Manty <rintaman@cs.Helsinki.FI>. * mail-source.el (mail-source-movemail): The error buffer is @@ -14065,8 +14056,8 @@ 2001-08-09 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * nndraft.el (nndraft-request-group): Use - nndraft-auto-save-file-name. + * nndraft.el (nndraft-request-group): + Use nndraft-auto-save-file-name. 2001-08-09 Simon Josefsson <jas@extundo.com> @@ -14091,8 +14082,8 @@ 2001-08-09 Simon Josefsson <jas@extundo.com> - * message.el (message-get-reply-headers): Fix string. Suggested by - Christoph Conrad <cc@cli.de>. + * message.el (message-get-reply-headers): Fix string. + Suggested by Christoph Conrad <cc@cli.de>. 2001-08-08 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -14107,8 +14098,8 @@ 2001-08-04 Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com> - * gnus-sum.el (gnus-summary-show-article): Call - gnus-summary-update-secondary-secondary-mark. + * gnus-sum.el (gnus-summary-show-article): + Call gnus-summary-update-secondary-secondary-mark. * gnus-sum.el (gnus-summary-edit-article-done): Ditto. * gnus-sum.el (gnus-summary-reparent-thread): Ditto. @@ -14131,8 +14122,8 @@ 2001-08-06 Florian Weimer <fw@deneb.enyo.de> - * message.el (message-indent-citation): Use - `message-yank-cited-prefix' for empty lines. + * message.el (message-indent-citation): + Use `message-yank-cited-prefix' for empty lines. 2001-08-05 Florian Weimer <fw@deneb.enyo.de> @@ -14141,8 +14132,8 @@ 2001-08-05 Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com> (tiny change) - * gnus-cache.el (gnus-cache-possibly-enter-article): Use - gnus-cache-fully-p. + * gnus-cache.el (gnus-cache-possibly-enter-article): + Use gnus-cache-fully-p. 2001-08-04 Simon Josefsson <jas@extundo.com> @@ -14152,7 +14143,7 @@ 2001-08-04 Simon Josefsson <jas@extundo.com> * gnus-cache.el (gnus-cache-possibly-enter-article): Revert. - (gnus-cache-passively-or-fully-p): Removed. + (gnus-cache-passively-or-fully-p): Remove. (gnus-cache-fully-p): Fix it. * mm-view.el (mm-pkcs7-signed-magic): Support more ASN.1 lengths. @@ -14180,8 +14171,8 @@ 2001-08-04 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-art.el (gnus-mime-security-verify-or-decrypt): Insert - before remove. + * gnus-art.el (gnus-mime-security-verify-or-decrypt): + Insert before remove. (gnus-mime-security-show-details): Ditto. 2001-08-04 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> @@ -14228,7 +14219,7 @@ 2001-08-02 Simon Josefsson <jas@extundo.com> - * smime.el (smime-extra-arguments): Removed. + * smime.el (smime-extra-arguments): Remove. (smime-call-openssl-region): Don't use it. 2001-08-02 Simon Josefsson <jas@extundo.com> @@ -14236,8 +14227,8 @@ * smime.el (smime-sign-region): Handle stderr. (smime-encrypt-region): Ditto. - * mm-view.el (mm-pkcs7-signed-magic): Make it a regexp. Don't - match the ASN.1 length bytes. + * mm-view.el (mm-pkcs7-signed-magic): Make it a regexp. + Don't match the ASN.1 length bytes. (mm-pkcs7-enveloped-magic): Ditto. (mm-view-pkcs7-get-type): Don't regexp quote. @@ -14305,8 +14296,8 @@ * smime.el (smime-call-openssl-region): Revert previous change, just pass on buf to `call-process-region'. - (smime-verify-region): Doc fix. Don't message stuff. Use - `smime-new-details-buffer'. Inserts error messages into buffer. + (smime-verify-region): Doc fix. Don't message stuff. + Use `smime-new-details-buffer'. Inserts error messages into buffer. (smime-noverify-region): Ditto. (smime-decrypt-region): Ditto. Handles stderr separately. (smime-verify-buffer, smime-noverify-buffer) @@ -14321,8 +14312,8 @@ 2001-07-30 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-art.el (gnus-mime-save-part-and-strip): Save - gnus-article-mime-handles. + * gnus-art.el (gnus-mime-save-part-and-strip): + Save gnus-article-mime-handles. 2001-07-29 Simon Josefsson <jas@extundo.com> @@ -14380,8 +14371,8 @@ * gnus.el (gnus-summary-line-format): Mention `gnus-sum-thread-*' for %B spec. - * gnus-sum.el (gnus-summary-prepare-threads): If - gnus-sum-thread-tree-root is nil, use subject instead. + * gnus-sum.el (gnus-summary-prepare-threads): + If gnus-sum-thread-tree-root is nil, use subject instead. (gnus-sum-thread-tree-root, gnus-sum-thread-tree-single-indent) (gnus-sum-thread-tree-vertical, gnus-sum-thread-tree-indent) (gnus-sum-thread-tree-leaf-with-other) @@ -14407,16 +14398,16 @@ 2001-07-27 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * nnfolder.el (nnfolder-request-accept-article): Bind - nntp-server-buffer. + * nnfolder.el (nnfolder-request-accept-article): + Bind nntp-server-buffer. * nnmail.el (nnmail-parse-active): Read from buffer instead of nntp-server-buffer. 2001-07-27 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * message.el (message-check-news-header-syntax): Use - message-post-method. + * message.el (message-check-news-header-syntax): + Use message-post-method. (message-send-news): Bind message-post-method. 2001-07-27 07:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -14428,8 +14419,8 @@ 2001-07-26 22:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * nnfolder.el (nnfolder-request-accept-article): Replace - nnfolder-request-list. + * nnfolder.el (nnfolder-request-accept-article): + Replace nnfolder-request-list. 2001-07-27 Simon Josefsson <jas@extundo.com> @@ -14444,8 +14435,8 @@ * gnus-art.el (gnus-mm-display-part): Narrow to point if eobp. - * message.el (message-set-auto-save-file-name): More - poor-system-types. + * message.el (message-set-auto-save-file-name): + More poor-system-types. * mailcap.el (mailcap-parse-mimetypes): poor-system-types. @@ -14489,8 +14480,8 @@ 2001-07-25 22:22:22 Raymond Scholz <rscholz@zonix.de> - * nnmail.el (nnmail-split-fancy-with-parent-ignore-groups): New - variable. + * nnmail.el (nnmail-split-fancy-with-parent-ignore-groups): + New variable. (nnmail-split-fancy-with-parent): Ignore certain groups. 2001-07-25 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -14574,8 +14565,8 @@ 2001-07-23 Katsumi Yamaoka <yamaoka@jpl.org> - * gnus-start.el (gnus-setup-news): Call - `gnus-check-bogus-newsgroups' just after the native server is + * gnus-start.el (gnus-setup-news): + Call `gnus-check-bogus-newsgroups' just after the native server is opened. 2001-07-23 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> @@ -14614,8 +14605,8 @@ * mm-util.el (mm-read-coding-system): Take two arguments. - * gnus-sum.el (gnus-summary-show-article): Use - mm-read-coding-system. + * gnus-sum.el (gnus-summary-show-article): + Use mm-read-coding-system. * gnus-art.el (article-de-quoted-unreadable): (article-de-base64-unreadable, article-wash-html): @@ -14631,8 +14622,8 @@ * nntp.el (nntp-request-newgroups): Use UTC date for NEWGROUPS command. - * gnus-start.el (gnus-find-new-newsgroups): Use - `message-make-date' instead of `current-time-string'. + * gnus-start.el (gnus-find-new-newsgroups): + Use `message-make-date' instead of `current-time-string'. (gnus-ask-server-for-new-groups): Ditto. (gnus-check-first-time-used): Ditto. @@ -14757,7 +14748,7 @@ 2001-07-12 Björn Torkelsson <torkel@hpc2n.umu.se> - * gnus-srvr.el (gnus-browse-make-menu-bar): Changed one of the + * gnus-srvr.el (gnus-browse-make-menu-bar): Change one of the Browse->Next entries to Browse->Prev. 2001-07-11 22:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -15078,8 +15069,8 @@ 2001-06-15 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-art.el (article-strip-multiple-blank-lines): Use - delete-region instead of replace-match. + * gnus-art.el (article-strip-multiple-blank-lines): + Use delete-region instead of replace-match. 2001-06-14 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -15160,8 +15151,8 @@ 2001-06-05 Alex Schroeder <alex@gnu.org> - * mm-decode.el (mm-handle-set-external-undisplayer): Don't - generate compiler warnings. + * mm-decode.el (mm-handle-set-external-undisplayer): + Don't generate compiler warnings. 2001-06-04 Hrvoje Niksic <hniksic@arsdigita.com> @@ -15346,7 +15337,7 @@ 2001-04-25 Per Abrahamsen <abraham@dina.kvl.dk> - * mm-uu.el (mm-uu-configure-list): Fixed customize type. + * mm-uu.el (mm-uu-configure-list): Fix customize type. 2001-04-24 Hrvoje Niksic <hniksic@arsdigita.com> @@ -15416,7 +15407,7 @@ 2001-04-02 Nevin Kapur <nevin@jhu.edu> - * nnmail.el (nnmail-split-it): Added check for .* at the end of + * nnmail.el (nnmail-split-it): Add check for .* at the end of regexp in nnmail-split-fancy. 2001-04-10 Simon Josefsson <simon@josefsson.org> @@ -15545,8 +15536,8 @@ 2001-03-31 00:03:42 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-msg.el (gnus-inews-insert-draft-meta-information): Allow - lists of articles. + * gnus-msg.el (gnus-inews-insert-draft-meta-information): + Allow lists of articles. * gnus-uu.el (gnus-uu-digest-mail-forward): Mark as forwarded. @@ -15563,7 +15554,7 @@ forwarded. (gnus-summary-mail-forward): Clean up. - * gnus.el (gnus-article-mark-lists): Added forward. + * gnus.el (gnus-article-mark-lists): Add forward. * gnus-sum.el (gnus-forwarded-mark): New variable. (gnus-summary-prepare-threads): Use it. @@ -15593,14 +15584,14 @@ 2001-03-15 09:47:23 Lars Magne Ingebrigtsen <larsi@gnus.org> - * nnultimate.el (nnultimate-retrieve-headers): Understand - long-form month names. + * nnultimate.el (nnultimate-retrieve-headers): + Understand long-form month names. 2001-03-18 23:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> * gnus-sum.el (gnus-summary-show-all-headers): - gnus-article-show-all-headers is broken. Use - gnus-summary-toggle-header instead. + gnus-article-show-all-headers is broken. + Use gnus-summary-toggle-header instead. * mml2015.el (mml2015-gpg-extract-from): No error. @@ -15612,8 +15603,8 @@ 2001-03-17 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * message.el (message-setup-fill-variables): Use - fill-paragraph-function. + * message.el (message-setup-fill-variables): + Use fill-paragraph-function. (message-fill-paragraph): Take an argument. (message-newline-and-reformat): Take another argument. @@ -15628,7 +15619,7 @@ 2001-03-16 Simon Josefsson <simon@josefsson.org> - * nnimap.el (nnimap-dont-use-nov-p): Renamed from + * nnimap.el (nnimap-dont-use-nov-p): Rename from `nnimap-use-nov-p' (it really tested the negative). (nnimap-retrieve-headers): Use it. @@ -15669,8 +15660,8 @@ ;; 2001-03-01 Dave Love <fx@gnu.org> - * mm-util.el (mm-inhibit-file-name-handlers): Add - image-file-handler. + * mm-util.el (mm-inhibit-file-name-handlers): + Add image-file-handler. 2001-02-11 Dave Love <fx@gnu.org> @@ -15704,8 +15695,8 @@ * gnus-score.el (gnus-score-find-bnews): Print messages on illegal SCORE paths. - * mm-decode.el (mm-dissect-buffer): Call - mail-extract-address-components only if necessary. + * mm-decode.el (mm-dissect-buffer): + Call mail-extract-address-components only if necessary. 2001-03-06 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -15715,8 +15706,8 @@ 2001-03-06 13:00:00 Adrian Aichner <adrian@xemacs.org> - * gnus-score.el (gnus-score-score-files-1): Use - gnus-kill-files-directory. + * gnus-score.el (gnus-score-score-files-1): + Use gnus-kill-files-directory. 2001-03-05 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -15726,8 +15717,8 @@ * mml.el (mml-preview): Disable local map. - * gnus-sum.el (gnus-summary-make-menu-bar): Make - gnus-article-post-menu here. + * gnus-sum.el (gnus-summary-make-menu-bar): + Make gnus-article-post-menu here. * gnus-art.el (gnus-article-make-menu-bar): Make summary-menu bar if it has not been made. @@ -15824,8 +15815,8 @@ * smiley.el (gnus-smiley-display): Don't do widening. - * smiley-ems.el (gnus-smiley-display): Don't do widening. Smiley - within body. + * smiley-ems.el (gnus-smiley-display): Don't do widening. + Smiley within body. * gnus-msg.el (gnus-inews-do-gcc): Activate group anyway. @@ -15911,7 +15902,7 @@ 2001-02-14 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus.el (gnus-define-group-parameter): Improved. + * gnus.el (gnus-define-group-parameter): Improve. * gnus-sum.el (charset): Define parameter. (ignored-charsets): Ditto. @@ -15927,8 +15918,8 @@ 2001-02-13 21:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-sum.el (gnus-summary-read-group-1): Remove - gnus-summary-set-local-parameters. + * gnus-sum.el (gnus-summary-read-group-1): + Remove gnus-summary-set-local-parameters. (gnus-summary-setup-buffer): Put it here. 2001-02-13 20:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -15980,8 +15971,8 @@ (article-remove-leading-whitespace): New function. (gnus-article-make-menu-bar): Use it. - * gnus-sum.el (gnus-summary-wash-empty-map): Add - remove-leading-whitespace. + * gnus-sum.el (gnus-summary-wash-empty-map): + Add remove-leading-whitespace. (gnus-summary-wash-map): Bind strip-headers-in-body to `W a', because of conflict. @@ -16012,13 +16003,13 @@ 2001-02-08 Tommi Vainikainen <thv@iki.fi> (tiny change) - * gnus-sum.el (gnus-simplify-subject-re): Use - message-subject-re-regexp. + * gnus-sum.el (gnus-simplify-subject-re): + Use message-subject-re-regexp. 2001-02-08 18:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * nnmail.el (nnmail-expiry-target-group): Bind - nnmail-cache-accepted-message-ids to nil. + * nnmail.el (nnmail-expiry-target-group): + Bind nnmail-cache-accepted-message-ids to nil. * gnus-xmas.el (gnus-xmas-article-display-xface): Use binary coding system. @@ -16072,34 +16063,34 @@ 2001-02-06 02:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-xmas.el (gnus-xmas-article-menu-add): Add - gnus-article-commands-menu. + * gnus-xmas.el (gnus-xmas-article-menu-add): + Add gnus-article-commands-menu. * gnus-sum.el (gnus-summary-make-menu-bar): Don't share menu bar in Emacs. - * gnus-start.el (gnus-read-descriptions-file): Use - gnus-group-name-charset and gnus-group-charset-alist. + * gnus-start.el (gnus-read-descriptions-file): + Use gnus-group-name-charset and gnus-group-charset-alist. 2001-02-04 23:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-sum.el (gnus-summary-mark-as-processable): Understand - active region. + * gnus-sum.el (gnus-summary-mark-as-processable): + Understand active region. * gnus-start.el (gnus-group-change-level): Remove from both gnus-zombie-list and gnus-killed-list. 2001-02-04 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-start.el (gnus-subscribe-options-newsgroup-method): Add - gnus-subscribe-topics. + * gnus-start.el (gnus-subscribe-options-newsgroup-method): + Add gnus-subscribe-topics. * gnus-cus.el (gnus-extra-topic-parameters): Fix doc. 2001-02-04 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-art.el (gnus-article-make-menu-bar): Make - gnus-article-post-menu. + * gnus-art.el (gnus-article-make-menu-bar): + Make gnus-article-post-menu. * gnus-xmas.el (gnus-xmas-article-menu-add): Add post menu. @@ -16131,8 +16122,8 @@ 2001-01-31 Dave Love <fx@gnu.org> * gnus-art.el (gnus-article-x-face-command) - (gnus-treat-display-xface, gnus-treat-display-smileys): Add - :version. + (gnus-treat-display-xface, gnus-treat-display-smileys): + Add :version. 2001-01-26 Dave Love <fx@gnu.org> @@ -16170,7 +16161,7 @@ 2001-01-31 Karl Kleinpaste <karl@charcoal.com> - * nnmail.el (nnmail-remove-list-identifiers): Improved. + * nnmail.el (nnmail-remove-list-identifiers): Improve. 2001-01-31 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -16317,8 +16308,8 @@ 2001-01-18 18:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * message.el (message-yank-original): Understand - universal-argument. + * message.el (message-yank-original): + Understand universal-argument. 2001-01-18 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -16349,8 +16340,8 @@ 2001-01-15 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-art.el (article-display-x-face): Use - gnus-original-article-buffer. + * gnus-art.el (article-display-x-face): + Use gnus-original-article-buffer. 2001-01-15 Jack Twilley <jmt@tbe.net> @@ -16408,8 +16399,8 @@ (message-make-forward-subject-function) (message-send-mail-function, message-reply-to-function) (message-wide-reply-to-function, message-followup-to-function) - (message-distribution-function, message-auto-save-directory): Fix - :type. + (message-distribution-function, message-auto-save-directory): + Fix :type. * mml.el (mml-parse-1): Frob mml-confirmation-set when proceeding after warnings. Amend multipart warning message. @@ -16420,8 +16411,8 @@ compiling. (gnus-make-directory): Require nnmail. - * mm-decode.el (mm-inline-media-tests): Add - image/x-portable-bitmap. + * mm-decode.el (mm-inline-media-tests): + Add image/x-portable-bitmap. (mm-get-image): Grok pbm. 2001-01-10 Paul Stevenson <p.stevenson@surrey.ac.uk> @@ -16574,8 +16565,8 @@ 2000-12-30 00:17:38 Lars Magne Ingebrigtsen <larsi@gnus.org> - * gnus-sum.el (gnus-summary-limit-include-expunged): Really - include the expunged articles. + * gnus-sum.el (gnus-summary-limit-include-expunged): + Really include the expunged articles. * gnus-group.el (gnus-group-sort-by-server): New function. @@ -16595,7 +16586,7 @@ * gnus-cite.el (gnus-article-fill-cited-article): Add a space after the fill prefix. - * gnus-sum.el (gnus-summary-make-menu-bar): Removed "Enter + * gnus-sum.el (gnus-summary-make-menu-bar): Remove "Enter score...". * gnus-art.el (gnus-ignored-headers): Hide more headers. @@ -16612,12 +16603,12 @@ 2000-12-29 01:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * mm-util.el (mm-enable-multibyte): Use - default-enable-multibyte-characters. + * mm-util.el (mm-enable-multibyte): + Use default-enable-multibyte-characters. (mm-enable-multibyte-mule4): Ditto. (mm-disable-multibyte): Test XEmacs. (mm-disable-multibyte-mule4): Ditto. - (mm-with-unibyte-current-buffer): Simplified. + (mm-with-unibyte-current-buffer): Simplify. (mm-with-unibyte-current-buffer-mule4): Ditto. 2000-12-28 19:44:56 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -16672,8 +16663,8 @@ 2000-12-24 Simon Josefsson <sj@extundo.com> - * mm-bodies.el (mm-decode-content-transfer-encoding): Preserve - mailing list junk at end of part. + * mm-bodies.el (mm-decode-content-transfer-encoding): + Preserve mailing list junk at end of part. 2000-12-23 Simon Josefsson <sj@extundo.com> @@ -16768,7 +16759,7 @@ * mml.el (gnus-ems): Don't require. - * gnus.el (gnus-decode-rfc1522): Removed. + * gnus.el (gnus-decode-rfc1522): Remove. (gnus-set-text-properties): Define. 2000-12-21 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -16791,8 +16782,8 @@ 2000-12-20 17:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> * message.el (message-mail-user-agent): New variable. - (message-setup): Renamed to message-setup-1. Support - mail-user-agent. + (message-setup): Rename to message-setup-1. + Support mail-user-agent. (message-mail-user-agent): New function. (message-mail): Use it. (message-reply): Use it. @@ -16845,8 +16836,8 @@ 2000-12-20 03:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * mm-decode.el (mm-possibly-verify-or-decrypt): Use - mail-extract-a-c instead. Don't depend on Gnus. + * mm-decode.el (mm-possibly-verify-or-decrypt): + Use mail-extract-a-c instead. Don't depend on Gnus. * mml.el (gnus-ems): Require it. @@ -16959,11 +16950,11 @@ 2000-11-30 Dave Love <fx@gnu.org> - * message.el (message-auto-save-directory): Use - file-name-as-directory. - (message-set-auto-save-file-name): Create - message-auto-save-directory if necessary. - (message-replace-chars-in-string): Removed -- unused. + * message.el (message-auto-save-directory): + Use file-name-as-directory. + (message-set-auto-save-file-name): + Create message-auto-save-directory if necessary. + (message-replace-chars-in-string): Remove -- unused. (message-mail-alias-type): Customize. (message-headers): Remove duplicate defgroup. @@ -16990,8 +16981,8 @@ * uu-post.pbm, uu-decode.pbm: New files from XPMs. * mm-uu.el (uudecode): Require. - (uudecode-decode-region, uudecode-decode-region-external): Don't - autoload. + (uudecode-decode-region, uudecode-decode-region-external): + Don't autoload. (mm-uu-copy-to-buffer): Doc fix. (mm-uu-decode-function, mm-uu-binhex-decode-function): Doc, custom type fix. @@ -17001,7 +16992,7 @@ (mailcap): New group. (mailcap-download-directory): Customize. (mailcap-generate-unique-filename, mailcap-binary-suffixes) - (mailcap-temporary-directory): Deleted (unused). + (mailcap-temporary-directory): Delete (unused). (mailcap-unescape-mime-test): Simplify slightly. (mailcap-viewer-passes-test): Use functionp. (mailcap-command-p): Aliased to executable-find. @@ -17039,11 +17030,11 @@ * gnus-agent.el (gnus-agent-confirmation-function): Add :version. (gnus-agent-lib-file, gnus-agent-load-alist) - (gnus-agent-save-alist, gnus-agent-article-name): Use - expand-file-name. + (gnus-agent-save-alist, gnus-agent-article-name): + Use expand-file-name. - * gnus-group.el (gnus-group-name-charset-method-alist): Add - :version. + * gnus-group.el (gnus-group-name-charset-method-alist): + Add :version. (nnkiboze-score-file): Defvar when compiling. * gnus-start.el (gnus-read-newsrc-file): Add :version. @@ -17075,8 +17066,8 @@ * gnus-cache.el (gnus-cache-active-file): Don't use file-name-as-directory on directory. - (gnus-cache-file-name): Use expand-file-name, not concat. Don't - use file-name-as-directory on directory. + (gnus-cache-file-name): Use expand-file-name, not concat. + Don't use file-name-as-directory on directory. * time-date.el (timezone-make-date-arpa-standard): Autoload. (date-to-time): Use it. @@ -17098,7 +17089,7 @@ * gnus-int.el (gnus-start-news-server): Use expand-file-name, not concat. - * pop3.el (pop3-version): Deleted. + * pop3.el (pop3-version): Delete. (pop3-make-date): New function, avoiding message-make-date. (pop3-munge-message-separator): Use it. @@ -17114,12 +17105,12 @@ * message.el (tool-bar-map): Defvar when compiling. * gnus-setup.el (running-xemacs, gnus-use-installed-tm) - (gnus-tm-lisp-directory): Deleted. - (gnus-use-installed-mailcrypt, gnus-emacs-lisp-directory): Use - (featurep 'xemacs). + (gnus-tm-lisp-directory): Delete. + (gnus-use-installed-mailcrypt, gnus-emacs-lisp-directory): + Use (featurep 'xemacs). (gnus-gnus-lisp-directory, gnus-mailcrypt-lisp-directory) - (gnus-mailcrypt-lisp-directory, gnus-bbdb-lisp-directory): Remove - version numbers from file names. + (gnus-mailcrypt-lisp-directory, gnus-bbdb-lisp-directory): + Remove version numbers from file names. 2000-11-08 Dave Love <fx@gnu.org> @@ -17220,8 +17211,8 @@ * rfc2047.el (base64): Require unconditionally. (message-posting-charset): Defvar when compiling. - (rfc2047-encode-message-header, rfc2047-encodable-p): Require - message. + (rfc2047-encode-message-header, rfc2047-encodable-p): + Require message. * gnus-sum.el (nnoo): Require. (mm-uu-dissect): Autoload. @@ -17318,8 +17309,8 @@ 2000-10-09 Dave Love <fx@gnu.org> - * mail-source.el (mail-source-fetch-imap): Bind - default-enable-multibyte-characters rather than using + * mail-source.el (mail-source-fetch-imap): + Bind default-enable-multibyte-characters rather than using mm-disable-multibyte. 2000-10-05 Dave Love <fx@gnu.org> @@ -17356,8 +17347,8 @@ 2000-10-04 Dave Love <fx@gnu.org> - * smiley-ems.el (smiley-regexp-alist, smiley-update-cache): Use - pbm images. + * smiley-ems.el (smiley-regexp-alist, smiley-update-cache): + Use pbm images. * frown.pbm, smile.pbm, wry.pbm: New files. @@ -17452,7 +17443,7 @@ 2000-12-15 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> * pop3.el (pop3-movemail): Use binary. - (pop3-movemail-file-coding-system): Removed. + (pop3-movemail-file-coding-system): Remove. 2000-12-14 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -17512,8 +17503,8 @@ 2000-12-04 18:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * mail-source.el (mail-source-report-new-mail): Use - nnheader-run-at-time. + * mail-source.el (mail-source-report-new-mail): + Use nnheader-run-at-time. 2000-02-15 Andrew Innes <andrewi@gnu.org> @@ -17557,8 +17548,8 @@ 2000-12-01 Simon Josefsson <sj@extundo.com> - * mml-smime.el (mml-smime-verify): Don't modify MM buffer. Handle - more than one certificate inside PKCS#7 blob. Better security + * mml-smime.el (mml-smime-verify): Don't modify MM buffer. + Handle more than one certificate inside PKCS#7 blob. Better security information (clamed / actual sender, openssl output, certificates inside message). @@ -17567,8 +17558,8 @@ 2000-11-30 23:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-art.el (gnus-mime-security-button-line-format-alist): Add - ?d and ?D. + * gnus-art.el (gnus-mime-security-button-line-format-alist): + Add ?d and ?D. (gnus-mime-security-show-details-inline): New variable. (gnus-mime-security-show-details): Use them. (gnus-insert-mime-security-button): Ditto. @@ -17614,8 +17605,8 @@ 2000-11-22 Jan Nieuwenhuizen <janneke@gnu.org> - * nnmh.el (nnmh-request-expire-articles): Implemented - expiry-target for nnmh backend. + * nnmh.el (nnmh-request-expire-articles): + Implemented expiry-target for nnmh backend. 2000-11-30 Simon Josefsson <sj@extundo.com> @@ -17681,8 +17672,8 @@ 2000-11-22 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-xmas.el (gnus-xmas-article-display-xface): Use - insert-buffer-substring. + * gnus-xmas.el (gnus-xmas-article-display-xface): + Use insert-buffer-substring. * message.el (message-send-mail): Use buffer-substring-no-properties. (message-send-news): Ditto. @@ -17777,13 +17768,13 @@ * mml-sec.el (mml-sign-alist): Update names. (mml-encrypt-alist): Ditto. - (mml-secure-part-smime-sign): Moved to mml-smime.el + (mml-secure-part-smime-sign): Move to mml-smime.el as `mml-smime-sign-query'. - (mml-secure-part-smime-encrypt-by-file): Moved to mml-smime.el as + (mml-secure-part-smime-encrypt-by-file): Move to mml-smime.el as `mml-smime-get-file-cert'. - (mml-secure-part-smime-encrypt-by-dns): Moved to mml-smime.el as + (mml-secure-part-smime-encrypt-by-dns): Move to mml-smime.el as `mml-smime-get-dns-cert'. - (mml-secure-part-smime-encrypt): Moved to mml-smime.el as + (mml-secure-part-smime-encrypt): Move to mml-smime.el as `mml-smime-encrypt-query'. (mml-smime-sign-buffer): Use mml-smime-sign. (mml-smime-encrypt-buffer): Use mml-smime-encrypt. @@ -17793,7 +17784,7 @@ (mml-smime-sign-query): (mml-smime-get-file-cert): (mml-smime-get-dns-cert): - (mml-smime-encrypt-query): Moved from mml-sec.el. + (mml-smime-encrypt-query): Move from mml-sec.el. 2000-11-16 Simon Josefsson <sj@extundo.com> @@ -17802,8 +17793,8 @@ 2000-11-17 14:21 ShengHuo ZHU <zsh@cs.rochester.edu> - * message.el (message-setup-fill-variables): Use - message-cite-prefix-regexp. + * message.el (message-setup-fill-variables): + Use message-cite-prefix-regexp. (message-newline-and-reformat): Check the end of citation, leading WSP, break in the cite prefix. (message-fill-paragraph): New function. @@ -17844,8 +17835,8 @@ 2000-11-12 David Edmondson <dme@dme.org> - * message.el (message-font-lock-keywords): Use - message-cite-prefix-regexp. + * message.el (message-font-lock-keywords): + Use message-cite-prefix-regexp. 2000-11-15 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> @@ -17939,15 +17930,15 @@ 2000-11-12 David Edmondson <dme@dme.org> - * message.el (message-cite-prefix-regexp): Moved from gnus-cite.el + * message.el (message-cite-prefix-regexp): Move from gnus-cite.el and replace `.' with `\w' to allow for different syntax tables (from Vladimir Volovich). - * message.el (message-newline-and-reformat): Use - `message-cite-prefix-regexp'. - * gnus-cite.el (gnus-supercite-regexp): Use - `message-cite-prefix-regexp'. - * gnus-cite.el (gnus-cite-parse): Use - `message-cite-prefix-regexp'. + * message.el (message-newline-and-reformat): + Use `message-cite-prefix-regexp'. + * gnus-cite.el (gnus-supercite-regexp): + Use `message-cite-prefix-regexp'. + * gnus-cite.el (gnus-cite-parse): + Use `message-cite-prefix-regexp'. 2000-11-12 08:52:46 ShengHuo ZHU <zsh@cs.rochester.edu> @@ -18124,8 +18115,8 @@ Verify S/MIME signature support. - * mm-decode.el (mm-inline-media-tests): Add - application/{x-,}pkcs7-signature. + * mm-decode.el (mm-inline-media-tests): + Add application/{x-,}pkcs7-signature. (mm-inlined-types): Ditto. (mm-automatic-display): Ditto. (mm-verify-function-alist): Ditto. Add name of method. @@ -18337,8 +18328,8 @@ * qp.el (quoted-printable-encode-region): Replace leading - when ultra safe. - * mml.el (mml-generate-mime-postprocess-function): Removed. - (mml-postprocess-alist): Removed. + * mml.el (mml-generate-mime-postprocess-function): Remove. + (mml-postprocess-alist): Remove. (mml-generate-mime-1): Use ultra-safe when sign. * mml2015.el (mml2015-fix-micalg): Uppercase. (mml2015-verify): Insert LF. @@ -18366,14 +18357,14 @@ 2000-10-30 08:17:46 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus.el (gnus-server-browse-hashtb): Removed. + * gnus.el (gnus-server-browse-hashtb): Remove. * gnus-group.el (gnus-group-prepare-flat-list-dead): Use gnus-active. (gnus-group-insert-group-line-info): Use simplified method. * gnus-srvr.el (gnus-browse-foreign-server): Use gnus-set-active. 2000-10-30 01:52:40 ShengHuo ZHU <zsh@cs.rochester.edu> - * gnus-util.el (gnus-union): Renamed from gnus-agent-union, and + * gnus-util.el (gnus-union): Rename from gnus-agent-union, and moved here. * gnus-agent.el (gnus-agent-fetch-headers): Use it. * gnus-group.el (gnus-group-prepare-flat): Use it. @@ -18450,9 +18441,9 @@ * mml-sec.el (mml-smime-encrypt-buffer): Support certfiles stored in buffers. - (mml-secure-dns-server): Removed. - (mml-secure-part-smime-encrypt-by-dns): Use DIG interface. Don't - write certificates to files. + (mml-secure-dns-server): Remove. + (mml-secure-part-smime-encrypt-by-dns): Use DIG interface. + Don't write certificates to files. * smime.el (smime-dns-server): New variable. (smime-mail-to-domain): diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 3c6d96703c0..d502a3b3904 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el @@ -654,9 +654,11 @@ Use `auth-source-delete' in ELisp code instead of calling 'secrets are the only ones supported right now. :max N means to try to return at most N items (defaults to 1). -When 0 the function will return just t or nil to indicate if any -matches were found. More than N items may be returned, depending -on the search and the backend. +More than N items may be returned, depending on the search and +the backend. + +When :max is 0 the function will return just t or nil to indicate +if any matches were found. :host (X Y Z) means to match only hosts X, Y, or Z according to the match rules above. Defaults to t. @@ -757,18 +759,22 @@ must call it to obtain the actual value." (when auth-source-do-cache (auth-source-remember spec found))) - found)) + (if (zerop max) + (not (null found)) + found))) (defun auth-source-search-backends (backends spec max create delete require) - (let (matches) + (let ((max (if (zerop max) 1 max)) ; stop with 1 match if we're asked for zero + matches) (dolist (backend backends) - (when (> max (length matches)) ; when we need more matches... + (when (> max (length matches)) ; if we need more matches... (let* ((bmatches (apply (slot-value backend 'search-function) :backend backend :type (slot-value backend :type) ;; note we're overriding whatever the spec - ;; has for :require, :create, and :delete + ;; has for :max, :require, :create, and :delete + :max max :require require :create create :delete delete @@ -783,6 +789,7 @@ must call it to obtain the actual value." (setq matches (append matches bmatches)))))) matches)) +;; (auth-source-search :max 0) ;; (auth-source-search :max 1) ;; (funcall (plist-get (nth 0 (auth-source-search :max 1)) :secret)) ;; (auth-source-search :host "nonesuch" :type 'netrc :K 1) @@ -1524,10 +1531,10 @@ list, it matches the original pattern." (heads (if (stringp value) (list (list key value)) (mapcar (lambda (v) (list key v)) value)))) - (cl-loop + (loop for h in heads nconc - (cl-loop + (loop for tl in tails collect (append h tl)))))) @@ -1653,6 +1660,7 @@ authentication tokens: ;; (let ((auth-sources '("macos-keychain-internet:/Users/tzz/Library/Keychains/login.keychain"))) (auth-source-search :max 1)) ;; (let ((auth-sources '("macos-keychain-generic:Login"))) (auth-source-search :max 1 :host "git.gnus.org")) +;; (let ((auth-sources '("macos-keychain-generic:Login"))) (auth-source-search :max 1)) (defun* auth-source-macos-keychain-search (&rest spec diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el index 1e77c2af4db..325623139fe 100644 --- a/lisp/gnus/gmm-utils.el +++ b/lisp/gnus/gmm-utils.el @@ -441,6 +441,39 @@ rather than relying on `lexical-binding'. `(,(progn (require 'cl) (if (fboundp 'cl-labels) 'cl-labels 'labels)) ,bindings ,@body)) (put 'gmm-labels 'lisp-indent-function 1) +(put 'gmm-labels 'edebug-form-spec '((&rest (sexp sexp &rest form)) &rest form)) + +(defun gmm-format-time-string (format-string &optional time tz) + "Use FORMAT-STRING to format the time TIME, or now if omitted. +The optional TZ specifies the time zone in a number of seconds; any +other non-nil value will be treated as 0. Note that both the format +specifiers `%Z' and `%z' will be replaced with a numeric form. " +;; FIXME: is there a smart way to replace %Z with a time zone name? + (if (and (numberp tz) (not (zerop tz))) + (let ((st 0) + (case-fold-search t) + ls nd rest) + (setq time (if time + (copy-sequence time) + (current-time))) + (if (>= (setq ls (- (cadr time) (car (current-time-zone)) (- tz))) 0) + (setcar (cdr time) ls) + (setcar (cdr time) (+ ls 65536)) + (setcar time (1- (car time)))) + (setq tz (format "%s%02d%02d" + (if (>= tz 0) "+" "-") + (/ (abs tz) 3600) + (/ (% (abs tz) 3600) 60))) + (while (string-match "%+z" format-string st) + (if (zerop (% (- (setq nd (match-end 0)) (match-beginning 0)) 2)) + (progn + (push (substring format-string st (- nd 2)) rest) + (push tz rest)) + (push (substring format-string st nd) rest)) + (setq st nd)) + (push (substring format-string st) rest) + (format-time-string (apply 'concat (nreverse rest)) time)) + (format-time-string format-string time tz))) (provide 'gmm-utils) diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 7cc866b3ee5..557c6a3a4ab 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -24,9 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (eval-when-compile (require 'cl)) (defvar tool-bar-map) @@ -256,7 +253,13 @@ This can also be a list of the above values." (regexp :value ".*")) :group 'gnus-article-signature) -(defcustom gnus-hidden-properties '(invisible t intangible t) +(defcustom gnus-hidden-properties + (if (featurep 'xemacs) + ;; `intangible' is evil, but I keep it here in case it's useful. + '(invisible t intangible t) + ;; Emacs's command loop moves point out of invisible text anyway, so + ;; `intangible' is clearly not needed there. + '(invisible t)) "Property list to use for hiding text." :type 'sexp :group 'gnus-article-hiding) @@ -1623,8 +1626,11 @@ It is a string, such as \"PGP\". If nil, ask user." :type 'string :group 'mime-security) +(defvar idna-program) + (defcustom gnus-use-idna (and (condition-case nil (require 'idna) (file-error)) (mm-coding-system-p 'utf-8) + idna-program (executable-find idna-program)) "Whether IDNA decoding of headers is used when viewing messages. This requires GNU Libidn, and by default only enabled if it is found." @@ -1837,7 +1843,7 @@ Initialized from `text-mode-syntax-table.") (incf i))) i)) -(defun article-hide-headers (&optional arg delete) +(defun article-hide-headers (&optional _arg _delete) "Hide unwanted headers and possibly sort them as well." (interactive) ;; This function might be inhibited. @@ -2407,7 +2413,7 @@ long lines if and only if arg is positive." (if (and wash-face-p (memq 'face gnus-article-wash-types)) (gnus-delete-images 'face) (let ((from (message-fetch-field "from")) - face faces) + faces) (save-current-buffer (when (and wash-face-p (gnus-buffer-live-p gnus-original-article-buffer) @@ -2457,7 +2463,7 @@ long lines if and only if arg is positive." (gnus-delete-images 'xface) ;; Display X-Faces. (let ((from (message-fetch-field "from")) - x-faces face) + x-faces) (save-current-buffer (when (and wash-face-p (gnus-buffer-live-p gnus-original-article-buffer) @@ -2790,7 +2796,7 @@ summary buffer." "Find CID content in HANDLES and save it in a file in DIRECTORY. Return file name." (save-match-data - (let (file type) + (let (file) (catch 'found (dolist (handle handles) (cond @@ -3078,7 +3084,7 @@ images if any to the browser, and deletes them when exiting the group (gnus-summary-show-article))))) (defun article-hide-list-identifiers () - "Remove list identifies from the Subject header. + "Remove list identifiers from the Subject header. The `gnus-list-identifiers' variable specifies what to do." (interactive) (let ((inhibit-point-motion-hooks t) @@ -3392,7 +3398,7 @@ means show, 0 means toggle." 'hidden nil))) -(defun gnus-article-show-hidden-text (type &optional dummy) +(defun gnus-article-show-hidden-text (type &optional _dummy) "Show all hidden text of type TYPE. Originally it is hide instead of DUMMY." (let ((inhibit-read-only t) @@ -3431,7 +3437,7 @@ lines forward." gnus-article-date-headers) t)) -(defun article-date-ut (&optional type highlight date-position) +(defun article-date-ut (&optional type _highlight date-position) "Convert DATE date to TYPE in the current article. The default type is `ut'. See `gnus-article-date-headers' for possible values." @@ -3439,7 +3445,6 @@ possible values." (let* ((case-fold-search t) (inhibit-read-only t) (inhibit-point-motion-hooks t) - (first t) (visible-date (mail-fetch-field "Date")) pos date bface eface) (save-excursion @@ -3978,7 +3983,7 @@ This format is defined by the `gnus-article-time-format' variable." (set dir-var (file-name-directory result))) result)) -(defun gnus-article-archive-name (group) +(defun gnus-article-archive-name (_group) "Return the first instance of an \"Archive-name\" in the current buffer." (let ((case-fold-search t)) (when (re-search-forward "archive-name: *\\([^ \n\t]+\\)[ \t]*$" nil t) @@ -4210,7 +4215,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is default (or last-file default)))) -(defun gnus-plain-save-name (newsgroup headers &optional last-file) +(defun gnus-plain-save-name (newsgroup _headers &optional last-file) "Generate file name from NEWSGROUP, HEADERS, and optional LAST-FILE. If variable `gnus-use-long-file-name' is non-nil, it is ~/News/news.group. Otherwise, it is like ~/News/news/group/news." @@ -4223,7 +4228,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is default-directory)) gnus-article-save-directory))) -(defun gnus-sender-save-name (newsgroup headers &optional last-file) +(defun gnus-sender-save-name (_newsgroup headers &optional _last-file) "Generate file name from sender." (let ((from (mail-header-from headers))) (expand-file-name @@ -4420,6 +4425,8 @@ If variable `gnus-use-long-file-name' is non-nil, it is (substitute-key-definition 'undefined 'gnus-article-read-summary-keys gnus-article-mode-map) +(defvar gnus-article-send-map) + (gnus-define-keys (gnus-article-send-map "S" gnus-article-mode-map) "W" gnus-article-wide-reply-with-original) (if (featurep 'xemacs) @@ -4603,18 +4610,19 @@ commands: (forward-line line) (point))))))) -(defun gnus-article-prepare (article &optional all-headers header) +(defvar gnus-tmp-internal-hook) + +(defun gnus-article-prepare (article &optional all-headers _header) "Prepare ARTICLE in article mode buffer. ARTICLE should either be an article number or a Message-ID. If ARTICLE is an id, HEADER should be the article headers. If ALL-HEADERS is non-nil, no headers are hidden." - (save-excursion + (save-excursion ;FIXME: Shouldn't that be save-current-buffer? ;; Make sure we start in a summary buffer. (unless (derived-mode-p 'gnus-summary-mode) (set-buffer gnus-summary-buffer)) (setq gnus-summary-buffer (current-buffer)) - (let* ((gnus-article (if header (mail-header-number header) article)) - (summary-buffer (current-buffer)) + (let* ((summary-buffer (current-buffer)) (gnus-tmp-internal-hook gnus-article-internal-prepare-hook) (group gnus-newsgroup-name) result) @@ -4713,6 +4721,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (gnus-run-hooks 'gnus-article-prepare-hook) t)))))) +(defvar gnus-mime-display-attachment-buttons-in-header) + ;;;###autoload (defun gnus-article-prepare-display () "Make the current buffer look like a nice article." @@ -4728,7 +4738,10 @@ If ALL-HEADERS is non-nil, no headers are hidden." gnus-article-image-alist nil) (gnus-run-hooks 'gnus-tmp-internal-hook) (when gnus-display-mime-function - (funcall gnus-display-mime-function)))) + (funcall gnus-display-mime-function)) + ;; Add attachment buttons to the header. + (when gnus-mime-display-attachment-buttons-in-header + (gnus-mime-buttonize-attachments-in-header)))) ;;; ;;; Gnus Sticky Article Mode @@ -4833,6 +4846,16 @@ Valid specifiers include: General format specifiers can also be used. See Info node `(gnus)Formatting Variables'.") +(defvar gnus-tmp-type) +(defvar gnus-tmp-type-long) +(defvar gnus-tmp-name) +(defvar gnus-tmp-description) +(defvar gnus-tmp-id) +(defvar gnus-tmp-length) +(defvar gnus-tmp-dots) +(defvar gnus-tmp-info) +(defvar gnus-tmp-pressed-details) + (defvar gnus-mime-button-line-format-alist '((?t gnus-tmp-type ?s) (?T gnus-tmp-type-long ?s) @@ -4987,7 +5010,6 @@ and `gnus-mime-delete-part', and not provided at run-time normally." (gnus-article-edit-article `(lambda () (buffer-disable-undo) - (erase-buffer) (let ((mail-parse-charset (or gnus-article-charset ',gnus-newsgroup-charset)) (mail-parse-ignored-charsets @@ -4995,7 +5017,14 @@ and `gnus-mime-delete-part', and not provided at run-time normally." ',gnus-newsgroup-ignored-charsets)) (mbl mml-buffer-list)) (setq mml-buffer-list nil) - (insert-buffer-substring gnus-original-article-buffer) + ;; A new text must be inserted before deleting existing ones + ;; at the end so as not to move existing markers of which + ;; the insertion type is t. + (delete-region + (point-min) + (prog1 + (goto-char (point-max)) + (insert-buffer-substring gnus-original-article-buffer))) (mime-to-mml ',handles) (setq gnus-article-mime-handles nil) (let ((mbl1 mml-buffer-list)) @@ -5053,7 +5082,6 @@ If FILE is given, use it for the external part." The current article has a complicated MIME structure, giving up...")) (let* ((data (get-text-property (point) 'gnus-data)) (id (get-text-property (point) 'gnus-part)) - param (handles gnus-article-mime-handles)) (unless file (setq file @@ -5300,40 +5328,77 @@ are decompressed." Compressed files like .gz and .bz2 are decompressed." (interactive (list nil current-prefix-arg)) (gnus-article-check-buffer) - (unless handle - (setq handle (get-text-property (point) 'gnus-data))) - (when handle - (let ((b (point)) - (inhibit-read-only t) - contents charset coding-system) + (let* ((inhibit-read-only t) + (b (point)) + (btn ;; position where the MIME button exists + (if handle + (if (eq handle (get-text-property b 'gnus-data)) + b + (article-goto-body) + (or (text-property-any (point) (point-max) 'gnus-data handle) + (text-property-any (point-min) (point) 'gnus-data handle))) + (setq handle (get-text-property b 'gnus-data)) + b)) + start) + (when handle + (when (= b (prog1 + btn + (setq start (next-single-property-change btn 'gnus-data + nil (point-max)) + btn (previous-single-property-change start + 'gnus-data)))) + (setq b btn)) (if (and (not arg) (mm-handle-undisplayer handle)) (mm-remove-part handle) - (mm-with-unibyte-buffer - (mm-insert-part handle) - (setq contents - (or (mm-decompress-buffer (mm-handle-filename handle) nil t) - (buffer-string)))) (cond - ((not arg) - (unless (setq charset (mail-content-type-get - (mm-handle-type handle) 'charset)) - (unless (setq coding-system - (mm-with-unibyte-buffer - (insert contents) - (mm-find-buffer-file-coding-system))) - (setq charset gnus-newsgroup-charset)))) + ((not arg) nil) ((numberp arg) (if (mm-handle-undisplayer handle) - (mm-remove-part handle)) - (setq charset - (or (cdr (assq arg - gnus-summary-show-article-charset-alist)) - (mm-read-coding-system "Charset: ")))) + (mm-remove-part handle))) ((mm-handle-undisplayer handle) (mm-remove-part handle))) - (forward-line 2) - (mm-display-inline handle) - (goto-char b))))) + (goto-char start) + (unless (bolp) + ;; This is a header button. + (forward-line 1)) + (mm-display-inline handle)) + ;; Toggle the button appearance between `[button]...' and `[button]'. + (goto-char btn) + (let ((displayed-p (mm-handle-displayed-p handle))) + (gnus-insert-mime-button handle (get-text-property btn 'gnus-part) + (list displayed-p)) + (if (featurep 'emacs) + (delete-region + (point) + (next-single-property-change (point) 'gnus-data nil (point-max))) + (let* ((end (next-single-property-change (point) 'gnus-data)) + (annots (annotations-at (or end (point-max))))) + (delete-region (point) + (if end + (if annots (1+ end) end) + (point-max))) + (dolist (annot annots) + (set-extent-endpoints annot (point) (point))))) + (setq start (point)) + (if (search-backward "\n\n" nil t) + (progn + (goto-char start) + (unless (or displayed-p (eolp)) + ;; Add extra newline. + (insert (propertize (buffer-substring (1- start) start) + 'gnus-undeletable t)))) + ;; We're in the article header. + (delete-char -1) + (dolist (ovl (gnus-overlays-in btn (point))) + (gnus-overlay-put ovl 'gnus-button-attachment-extra t) + (gnus-overlay-put ovl 'face nil)) + (save-restriction + (message-narrow-to-field) + (let ((gnus-treatment-function-alist + '((gnus-treat-highlight-headers + gnus-article-highlight-headers)))) + (gnus-treat-article 'head))))) + (goto-char b)))) (defun gnus-mime-set-charset-parameters (handle charset) "Set CHARSET to parameters in HANDLE. @@ -5399,7 +5464,6 @@ specified charset." (interactive) (gnus-article-check-buffer) (let* ((handle (or handle (get-text-property (point) 'gnus-data))) - (mm-user-display-methods nil) (mm-inlined-types nil) (mail-parse-charset gnus-newsgroup-charset) (mail-parse-ignored-charsets @@ -5635,54 +5699,106 @@ all parts." "Display HANDLE and fix MIME button." (let ((id (get-text-property (point) 'gnus-part)) (point (point)) - (inhibit-read-only t)) - (forward-line 1) - (prog1 - (let ((window (selected-window)) - (mail-parse-charset gnus-newsgroup-charset) - (mail-parse-ignored-charsets - (if (gnus-buffer-live-p gnus-summary-buffer) - (with-current-buffer gnus-summary-buffer - gnus-newsgroup-ignored-charsets) - nil))) - (save-excursion - (unwind-protect - (let ((win (gnus-get-buffer-window (current-buffer) t)) - (beg (point))) - (when win - (select-window win)) - (goto-char point) - (forward-line) - (if (mm-handle-displayed-p handle) - ;; This will remove the part. - (mm-display-part handle) - (save-restriction - (narrow-to-region (point) - (if (eobp) (point) (1+ (point)))) - (gnus-bind-safe-url-regexp (mm-display-part handle)) - ;; We narrow to the part itself and - ;; then call the treatment functions. - (goto-char (point-min)) - (forward-line 1) - (narrow-to-region (point) (point-max)) - (gnus-treat-article - nil id - (gnus-article-mime-total-parts) - (mm-handle-media-type handle))))) - (if (window-live-p window) - (select-window window))))) + (inhibit-read-only t) + (window (selected-window)) + (mail-parse-charset gnus-newsgroup-charset) + (mail-parse-ignored-charsets + (if (gnus-buffer-live-p gnus-summary-buffer) + (with-current-buffer gnus-summary-buffer + gnus-newsgroup-ignored-charsets) + nil)) + start retval) + (unwind-protect + (progn + (let ((win (gnus-get-buffer-window (current-buffer) t))) + (when win + (select-window win) + (goto-char point))) + (setq start (next-single-property-change point 'gnus-data + nil (point-max)) + point (previous-single-property-change start 'gnus-data)) + (if (mm-handle-displayed-p handle) + ;; This will remove the part. + (setq retval (mm-display-part handle)) + (let ((part (or (and (mm-inlinable-p handle) + (mm-inlined-p handle) + t) + (with-temp-buffer + (gnus-bind-safe-url-regexp + (setq retval (mm-display-part handle))) + (unless (zerop (buffer-size)) + (buffer-string)))))) + (goto-char start) + (unless (bolp) + ;; This is a header button. + (forward-line 1)) + (cond ((stringp part) + (save-restriction + (narrow-to-region (point) + (progn + (insert part) + (unless (bolp) (insert "\n")) + (point))) + (gnus-treat-article nil id + (gnus-article-mime-total-parts) + (mm-handle-media-type handle)) + (mm-handle-set-undisplayer + handle + `(lambda () + (let ((inhibit-read-only t)) + (delete-region ,(copy-marker (point-min) t) + ,(point-max-marker))))))) + (part + (mm-display-inline handle)))))) (goto-char point) - (gnus-delete-line) - (gnus-insert-mime-button - handle id (list (mm-handle-displayed-p handle))) - (goto-char point)))) + ;; Toggle the button appearance between `[button]...' and `[button]'. + (let ((displayed-p (mm-handle-displayed-p handle))) + (gnus-insert-mime-button handle id (list displayed-p)) + (if (featurep 'emacs) + (delete-region + (point) + (next-single-property-change (point) 'gnus-data nil (point-max))) + (let* ((end (next-single-property-change (point) 'gnus-data)) + (annots (annotations-at (or end (point-max))))) + (delete-region (point) + (if end + (if annots (1+ end) end) + (point-max))) + (dolist (annot annots) + (set-extent-endpoints annot (point) (point))))) + (setq start (point)) + (if (search-backward "\n\n" nil t) + (progn + (goto-char start) + (unless (or displayed-p (eolp)) + ;; Add extra newline. + (insert (propertize (buffer-substring (1- start) start) + 'gnus-undeletable t)))) + ;; We're in the article header. + (delete-char -1) + (dolist (ovl (gnus-overlays-in point (point))) + (gnus-overlay-put ovl 'gnus-button-attachment-extra t) + (gnus-overlay-put ovl 'face nil)) + (save-restriction + (message-narrow-to-field) + (let ((gnus-treatment-function-alist + '((gnus-treat-highlight-headers + gnus-article-highlight-headers)))) + (gnus-treat-article 'head))))) + (goto-char point) + (if (window-live-p window) + (select-window window))) + retval)) (defun gnus-article-goto-part (n) "Go to MIME part N." (when gnus-break-pages (widen)) + (article-goto-body) (prog1 - (let ((start (text-property-any (point-min) (point-max) 'gnus-part n)) + (let ((start (or (text-property-any (point) (point-max) 'gnus-part n) + ;; There may be header buttons. + (text-property-any (point-min) (point) 'gnus-part n))) part handle end next handles) (when start (goto-char start) @@ -5715,11 +5831,12 @@ all parts." (when gnus-break-pages (gnus-narrow-to-page)))) -(defun gnus-insert-mime-button (handle gnus-tmp-id &optional displayed) +(defun gnus-insert-mime-button (handle id &optional displayed) (let ((gnus-tmp-name (or (mm-handle-filename handle) (mail-content-type-get (mm-handle-type handle) 'url) "")) + (gnus-tmp-id id) (gnus-tmp-type (mm-handle-media-type handle)) (gnus-tmp-description (or (mm-handle-description handle) "")) (gnus-tmp-dots @@ -5736,8 +5853,6 @@ all parts." (concat "; " gnus-tmp-name)))) (unless (equal gnus-tmp-description "") (setq gnus-tmp-type-long (concat " --- " gnus-tmp-type-long))) - (unless (bolp) - (insert "\n")) (setq b (point)) (gnus-eval-format gnus-mime-button-line-format gnus-mime-button-line-format-alist @@ -5772,7 +5887,7 @@ all parts." "hide" "show") (aref gnus-down-mouse-3 0)))))) -(defun gnus-widget-press-button (elems el) +(defun gnus-widget-press-button (elems _el) (goto-char (widget-get elems :from)) (gnus-article-press-button)) @@ -5790,8 +5905,7 @@ all parts." ;; may change the point. So we set the window point. (set-window-point window point))) (let ((handles ihandles) - (inhibit-read-only t) - handle) + (inhibit-read-only t)) (cond (handles) ((setq handles (mm-dissect-buffer nil gnus-article-loose-mime)) (when gnus-article-emulate-mime @@ -5862,6 +5976,16 @@ If displaying \"text/html\" is discouraged \(see :group 'gnus-article-mime :type 'boolean) +(defcustom gnus-mime-display-attachment-buttons-in-header t + "Add attachment buttons in the end of the header of an article. +Since MIME attachments tend to be put at the end of an article, we may +overlook them if there is a huge body. This option offers you a copy +of all non-inlinable MIME parts as buttons shown in front of an article. +If nil, don't show those extra buttons." + :version "25.1" + :group 'gnus-article-mime + :type 'boolean) + (defun gnus-mime-display-part (handle) (cond ;; Maybe a broken MIME message. @@ -5884,14 +6008,6 @@ If displaying \"text/html\" is discouraged \(see ((and (equal (car handle) "multipart/related") (not (or gnus-mime-display-multipart-as-mixed gnus-mime-display-multipart-related-as-mixed))) - ;;;!!!We should find the start part, but we just default - ;;;!!!to the first part. - ;;(gnus-mime-display-part (cadr handle)) - ;;;!!! Most multipart/related is an HTML message plus images. - ;;;!!! Unfortunately we are unable to let W3 display those - ;;;!!! included images, so we just display it as a mixed multipart. - ;;(gnus-mime-display-mixed (cdr handle)) - ;;;!!! No, w3 can display everything just fine. (gnus-mime-display-part (cadr handle))) ((equal (car handle) "multipart/signed") (gnus-add-wash-type 'signed) @@ -5915,7 +6031,6 @@ If displaying \"text/html\" is discouraged \(see (let ((type (mm-handle-media-type handle)) (ignored gnus-ignored-mime-types) (not-attachment t) - (move nil) display text) (catch 'ignored (progn @@ -5941,9 +6056,11 @@ If displaying \"text/html\" is discouraged \(see (setq display t) (when (equal (mm-handle-media-supertype handle) "text") (setq text t))) - (let ((id (1+ (length gnus-article-mime-handle-alist))) + (let ((id (car (rassq handle gnus-article-mime-handle-alist))) beg) - (push (cons id handle) gnus-article-mime-handle-alist) + (unless id + (setq id (1+ (length gnus-article-mime-handle-alist))) + (push (cons id handle) gnus-article-mime-handle-alist)) (when (and display (equal (mm-handle-media-supertype handle) "message")) (insert-char @@ -5955,31 +6072,28 @@ If displaying \"text/html\" is discouraged \(see (not (gnus-unbuttonized-mime-type-p type)) (eq id gnus-mime-buttonized-part-id)) (gnus-insert-mime-button - handle id (list (or display (and not-attachment text)))) - (gnus-article-insert-newline) - ;; Remember modify the number of forward lines. - (setq move t)) + handle id (list (or display (and not-attachment text))))) (setq beg (point)) (cond (display - (when move - (forward-line -1) - (setq beg (point))) (let ((mail-parse-charset gnus-newsgroup-charset) (mail-parse-ignored-charsets (save-excursion (condition-case () (set-buffer gnus-summary-buffer) (error)) gnus-newsgroup-ignored-charsets))) - (gnus-bind-safe-url-regexp (mm-display-part handle t))) - (goto-char (point-max))) + (gnus-bind-safe-url-regexp (mm-display-part handle t)))) ((and text not-attachment) - (when move - (forward-line -1) - (setq beg (point))) - (gnus-article-insert-newline) - (mm-display-inline handle) - (goto-char (point-max)))) + (mm-display-inline handle))) + (goto-char (point-max)) + (if (string-match "\\`image/" type) + (gnus-article-insert-newline) + (if (prog1 + (= (skip-chars-backward "\n") -1) + (forward-char 1)) + (gnus-article-insert-newline) + (put-text-property (point) (point-max) 'gnus-undeletable t)) + (goto-char (point-max))) ;; Do highlighting. (save-excursion (save-restriction @@ -6023,7 +6137,7 @@ If displaying \"text/html\" is discouraged \(see (let* ((preferred (or preferred (mm-preferred-alternative handles))) (ihandles handles) (point (point)) - handle (inhibit-read-only t) from props begend not-pref) + handle (inhibit-read-only t) from begend not-pref) (save-window-excursion (save-restriction (when ibegend @@ -6110,7 +6224,10 @@ If displaying \"text/html\" is discouraged \(see (goto-char (point-max)) (setcdr begend (point-marker))))) (when ibegend - (goto-char point)))) + (goto-char point))) + ;; Redraw attachment buttons in the header. + (when gnus-mime-display-attachment-buttons-in-header + (gnus-mime-buttonize-attachments-in-header))) (defconst gnus-article-wash-status-strings (let ((alist '((cite "c" "Possible hidden citation text" @@ -6216,6 +6333,112 @@ Provided for backwards compatibility." (when image (gnus-add-image 'shr image)))) +(defun gnus-article-mime-handles (&optional alist id all) + (if alist + (let ((i 1) newid flat) + (dolist (handle alist flat) + (setq newid (append id (list i)) + i (1+ i)) + (if (stringp (car handle)) + (setq flat (nconc flat (gnus-article-mime-handles + (cdr handle) newid all))) + (delq (rassq handle all) all) + (setq flat (nconc flat (list (cons newid handle))))))) + (let ((flat (list nil))) + ;; Assume that elements of `gnus-article-mime-handle-alist' + ;; are in the decreasing order, but unnumbered subsidiaries + ;; in each element are in the increasing order. + (dolist (handle (reverse gnus-article-mime-handle-alist)) + (if (stringp (cadr handle)) + (setq flat (nconc flat (gnus-article-mime-handles + (cddr handle) (list (car handle)) flat))) + (delq (rassq (cdr handle) flat) flat) + (setq flat (nconc flat (list (cons (list (car handle)) + (cdr handle))))))) + (setq flat (cdr flat)) + (mapc (lambda (handle) + (if (cdar handle) + ;; This is a hidden (i.e. unnumbered) handle. + (progn + (setcar handle + (1+ (caar gnus-article-mime-handle-alist))) + (push handle gnus-article-mime-handle-alist)) + (setcar handle (caar handle)))) + flat) + flat))) + +(defun gnus-mime-buttonize-attachments-in-header (&optional interactive) + "Show attachments as buttons in the end of the header of an article. +This function toggles the display when called interactively. Note that +buttons to be added to the header are only the ones that aren't inlined +in the body. Use `gnus-header-face-alist' to highlight buttons." + (interactive (list t)) + (gnus-with-article-buffer + (let ((case-fold-search t) buttons handle type st) + (save-excursion + (save-restriction + (widen) + (article-narrow-to-head) + ;; Header buttons exist? + (while (and (not buttons) + (re-search-forward "^attachments?:[\n ]+" nil t)) + (when (get-char-property (match-end 0) + 'gnus-button-attachment-extra) + (setq buttons (match-beginning 0)))) + (widen) + (when buttons + ;; Delete header buttons. + (delete-region buttons (if (re-search-forward "^[^ ]" nil t) + (match-beginning 0) + (point-max)))) + (unless (and interactive buttons) + ;; Find buttons. + (setq buttons nil) + (dolist (button (gnus-article-mime-handles)) + (setq handle (cdr button) + type (mm-handle-media-type handle)) + (when (or (and (if (gnus-buffer-live-p gnus-summary-buffer) + (with-current-buffer gnus-summary-buffer + gnus-inhibit-images) + gnus-inhibit-images) + (string-match "\\`image/" type)) + (mm-inline-override-p handle) + (and (mm-handle-disposition handle) + (not (equal (car (mm-handle-disposition handle)) + "inline")) + (not (mm-attachment-override-p handle))) + (not (mm-automatic-display-p handle)) + (not (or (and (mm-inlinable-p handle) + (mm-inlined-p handle)) + (mm-automatic-external-display-p type)))) + (push button buttons))) + (when buttons + ;; Add header buttons. + (article-goto-body) + (forward-line -1) + (narrow-to-region (point) (point)) + (insert "Attachment" (if (cdr buttons) "s" "") ":") + (dolist (button (nreverse buttons)) + (setq st (point)) + (insert " ") + (mm-handle-set-undisplayer + (setq handle (copy-sequence (cdr button))) nil) + (gnus-insert-mime-button handle (car button)) + (skip-chars-backward "\t\n ") + (delete-region (point) (point-max)) + (when (> (current-column) (window-width)) + (goto-char st) + (insert "\n") + (end-of-line))) + (insert "\n") + (dolist (ovl (gnus-overlays-in (point-min) (point))) + (gnus-overlay-put ovl 'gnus-button-attachment-extra t) + (gnus-overlay-put ovl 'face nil)) + (let ((gnus-treatment-function-alist + '((gnus-treat-highlight-headers + gnus-article-highlight-headers)))) + (gnus-treat-article 'head))))))))) + ;;; Article savers. (defun gnus-output-to-file (file-name) @@ -6401,6 +6624,8 @@ specifies." (if header-line-format 1 0) 2))))))) +(defvar scroll-in-place) + (defun gnus-article-next-page-1 (lines) (condition-case () (let ((scroll-in-place nil) @@ -6488,7 +6713,9 @@ not have a face in `gnus-article-boring-faces'." (unless (derived-mode-p 'gnus-article-mode) (error "Command invoked outside of a Gnus article buffer"))) -(defun gnus-article-read-summary-keys (&optional arg key not-restore-window) +(defvar gnus-pick-mode) + +(defun gnus-article-read-summary-keys (&optional _arg key not-restore-window) "Read a summary buffer key sequence and execute it from the article buffer." (interactive "P") (gnus-article-check-buffer) @@ -6501,8 +6728,6 @@ not have a face in `gnus-article-boring-faces'." "An" "Ap" [?A (meta return)] [?A delete])) (nosave-in-article '("AS" "\C-d")) - (up-to-top - '("n" "Gn" "p" "Gp")) keys new-sum-point) (with-current-buffer gnus-article-current-summary (let (gnus-pick-mode) @@ -6584,7 +6809,7 @@ not have a face in `gnus-article-boring-faces'." (when (eq obuf (current-buffer)) (set-buffer in-buffer) t)) - (setq selected (gnus-summary-select-article)) + (setq selected (ignore-errors (gnus-summary-select-article))) (set-buffer obuf) (unless not-restore-window (set-window-configuration owin)) @@ -6661,6 +6886,7 @@ KEY is a string or a vector." (defvar gnus-agent-summary-mode) (defvar gnus-draft-mode) (defvar help-xref-stack-item) +(defvar help-xref-following) (defun gnus-article-describe-bindings (&optional prefix) "Show a list of all defined keys, and their definitions. @@ -7105,7 +7331,6 @@ groups." (let ((func gnus-article-edit-done-function) (buf (current-buffer)) (start (window-start)) - (p (point)) (winconf gnus-prev-winconf)) (widen) ;; Widen it in case that users narrowed the buffer. (funcall func arg) @@ -7734,7 +7959,7 @@ do the highlighting. See the documentation for those functions." (gnus-article-add-buttons) (gnus-article-add-buttons-to-head)) -(defun gnus-article-highlight-some (&optional force) +(defun gnus-article-highlight-some (&optional _force) "Highlight current article. This function calls `gnus-article-highlight-headers', `gnus-article-highlight-signature', and `gnus-article-add-buttons' to @@ -8037,9 +8262,11 @@ url is put as the `gnus-button-url' overlay property on the button." (error "Unknown news URL syntax")))) (list scheme server port group message-id articles))) +(defvar nntp-port-number) + (defun gnus-button-handle-news (url) "Fetch a news URL." - (destructuring-bind (scheme server port group message-id articles) + (destructuring-bind (_scheme server port group message-id _articles) (gnus-parse-news-url url) (cond (message-id @@ -8161,7 +8388,7 @@ url is put as the `gnus-button-url' overlay property on the button." (with-current-buffer gnus-summary-buffer (gnus-summary-refer-article message-id))) -(defun gnus-button-fetch-group (address &rest ignore) +(defun gnus-button-fetch-group (address &rest _ignore) "Fetch GROUP specified by ADDRESS." (when (string-match "\\`\\(nntp\\|news\\):\\(//\\)?\\(.*\\)\\'" address) @@ -8209,15 +8436,15 @@ url is put as the `gnus-button-url' overlay property on the button." (setq url (replace-regexp-in-string "\n" " " url)) (when (string-match "mailto:/*\\(.*\\)" url) (setq url (substring url (match-beginning 1) nil))) - (let (to args subject func) - (setq args (gnus-url-parse-query-string + (let* ((args (gnus-url-parse-query-string (if (string-match "^\\?" url) (substring url 1) (if (string-match "^\\([^?]+\\)\\?\\(.*\\)" url) (concat "to=" (match-string 1 url) "&" (match-string 2 url)) - (concat "to=" url)))) - subject (cdr-safe (assoc "subject" args))) + (concat "to=" url))))) + (subject (cdr-safe (assoc "subject" args))) + func) (gnus-msg-mail) (while args (setq func (intern-soft (concat "message-goto-" (downcase (caar args))))) @@ -8274,7 +8501,7 @@ url is put as the `gnus-button-url' overlay property on the button." :action 'gnus-button-prev-page :button-keymap gnus-prev-page-map))) -(defun gnus-button-next-page (&optional args more-args) +(defun gnus-button-next-page (&optional _args _more-args) "Go to the next page." (interactive) (let ((win (selected-window))) @@ -8282,7 +8509,7 @@ url is put as the `gnus-button-url' overlay property on the button." (gnus-article-next-page) (select-window win))) -(defun gnus-button-prev-page (&optional args more-args) +(defun gnus-button-prev-page (&optional _args _more-args) "Go to the prev page." (interactive) (let ((win (selected-window))) @@ -8310,7 +8537,7 @@ url is put as the `gnus-button-url' overlay property on the button." :action 'gnus-button-next-page :button-keymap gnus-next-page-map))) -(defun gnus-article-button-next-page (arg) +(defun gnus-article-button-next-page (_arg) "Go to the next page." (interactive "P") (let ((win (selected-window))) @@ -8318,7 +8545,7 @@ url is put as the `gnus-button-url' overlay property on the button." (gnus-article-next-page) (select-window win))) -(defun gnus-article-button-prev-page (arg) +(defun gnus-article-button-prev-page (_arg) "Go to the prev page." (interactive "P") (let ((win (selected-window))) @@ -8369,20 +8596,31 @@ For example: (defvar gnus-inhibit-article-treatments nil) -(defun gnus-treat-article (gnus-treat-condition - &optional part-number total-parts gnus-treat-type) - (let ((gnus-treat-length (- (point-max) (point-min))) +;; Dynamic variables. +(defvar part-number) ;FIXME: Lacks a "gnus-" prefix. +(defvar total-parts) ;FIXME: Lacks a "gnus-" prefix. +(defvar gnus-treat-type) +(defvar gnus-treat-condition) +(defvar gnus-treat-length) + +(defun gnus-treat-article (condition + &optional part-num total type) + (let ((gnus-treat-condition condition) + (part-number part-num) + (total-parts total) + (gnus-treat-type type) + (gnus-treat-length (- (point-max) (point-min))) (alist gnus-treatment-function-alist) (article-goto-body-goes-to-point-min-p t) (treated-type - (or (not gnus-treat-type) + (or (not type) (catch 'found (let ((list gnus-article-treat-types)) (while list - (when (string-match (pop list) gnus-treat-type) + (when (string-match (pop list) type) (throw 'found t))))))) (highlightp (gnus-visual-p 'article-highlight 'highlight)) - val elem) + val) (gnus-run-hooks 'gnus-part-display-hook) (dolist (elem alist) (setq val @@ -8400,13 +8638,6 @@ For example: (save-restriction (funcall (cadr elem))))))) -;; Dynamic variables. -(defvar part-number) -(defvar total-parts) -(defvar gnus-treat-type) -(defvar gnus-treat-condition) -(defvar gnus-treat-length) - (defun gnus-treat-predicate (val) (cond ((null val) @@ -8655,7 +8886,7 @@ For example: (gnus-mime-security-show-details handle) (gnus-mime-security-verify-or-decrypt handle)))) -(defun gnus-insert-mime-security-button (handle &optional displayed) +(defun gnus-insert-mime-security-button (handle &optional _displayed) (let* ((protocol (mm-handle-multipart-ctl-parameter handle 'protocol)) (gnus-tmp-type (concat @@ -8703,7 +8934,7 @@ For example: :action 'gnus-widget-press-button :button-keymap gnus-mime-security-button-map :help-echo - (lambda (widget) + (lambda (_widget) ;; Needed to properly clear the message due to a bug in ;; wid-edit (XEmacs only). (when (boundp 'help-echo-owns-message) diff --git a/lisp/gnus/gnus-bcklg.el b/lisp/gnus/gnus-bcklg.el index b26f367a79b..e0c457a8829 100644 --- a/lisp/gnus/gnus-bcklg.el +++ b/lisp/gnus/gnus-bcklg.el @@ -61,7 +61,7 @@ (defun gnus-backlog-enter-article (group number buffer) (when (and (numberp number) - (not (string-match "^nnvirtual" group))) + (not (gnus-virtual-group-p group))) (gnus-backlog-setup) (let ((ident (intern (concat group ":" (int-to-string number)) gnus-backlog-hashtb)) @@ -126,7 +126,7 @@ (defun gnus-backlog-request-article (group number &optional buffer) (when (and (numberp number) - (not (string-match "^nnvirtual" group))) + (not (gnus-virtual-group-p group))) (gnus-backlog-setup) (let ((ident (intern (concat group ":" (int-to-string number)) gnus-backlog-hashtb)) diff --git a/lisp/gnus/gnus-bookmark.el b/lisp/gnus/gnus-bookmark.el index b9426906e2c..e26c78b65c5 100644 --- a/lisp/gnus/gnus-bookmark.el +++ b/lisp/gnus/gnus-bookmark.el @@ -251,7 +251,7 @@ So the cdr of each bookmark is an alist too.") (interactive) (save-excursion (save-window-excursion - ;; Avoir warnings? + ;; Avoid warnings? ;; (message "Saving Gnus bookmarks to file %s..." gnus-bookmark-default-file) (set-buffer (get-buffer-create " *Gnus bookmarks*")) (erase-buffer) diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el index 54798a892e0..2e8b2dbbe9f 100644 --- a/lisp/gnus/gnus-cache.el +++ b/lisp/gnus/gnus-cache.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'gnus) diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el index 790a17e10eb..d8ee35d3e97 100644 --- a/lisp/gnus/gnus-cite.el +++ b/lisp/gnus/gnus-cite.el @@ -1204,7 +1204,8 @@ When enabled, it automatically turns on `font-lock-mode'." nil ;; init-value "" ;; lighter nil ;; keymap - (when (eq major-mode 'message-mode) + (when (eq major-mode 'message-mode) ;FIXME: Use derived-mode-p. + ;; FIXME: Use font-lock-add-keywords! (let ((defaults (car (if (featurep 'xemacs) (get 'message-mode 'font-lock-defaults) font-lock-defaults))) @@ -1233,8 +1234,10 @@ When enabled, it automatically turns on `font-lock-mode'." font-lock-keywords nil)) (setq font-lock-set-defaults nil)) (font-lock-set-defaults) - (cond ((symbol-value 'font-lock-mode) - (font-lock-fontify-buffer)) + (cond (font-lock-mode + (if (fboundp 'font-lock-flush) + (font-lock-flush) + (font-lock-fontify-buffer))) (gnus-message-citation-mode (font-lock-mode 1))))) diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el new file mode 100644 index 00000000000..f965f989b71 --- /dev/null +++ b/lisp/gnus/gnus-cloud.el @@ -0,0 +1,343 @@ +;;; gnus-cloud.el --- storing and retrieving data via IMAP + +;; Copyright (C) 2014-2015 Free Software Foundation, Inc. + +;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> +;; Keywords: mail + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; 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. + +;; 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 +;; 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 <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;;; Code: + +(eval-when-compile (require 'cl)) +(require 'parse-time) +(require 'nnimap) + +(defgroup gnus-cloud nil + "Syncing Gnus data via IMAP." + :version "25.1" + :group 'gnus) + +(defcustom gnus-cloud-synced-files + '(;;"~/.authinfo" + "~/.authinfo.gpg" + "~/.gnus.el" + (:directory "~/News" :match ".*.SCORE\\'")) + "List of file regexps that should be kept up-to-date via the cloud." + :group 'gnus-cloud + ;; FIXME this type does not match the default. Nor does the documentation. + :type '(repeat regexp)) + +(defvar gnus-cloud-group-name "*Emacs Cloud*") +(defvar gnus-cloud-covered-servers nil) + +(defvar gnus-cloud-version 1) +(defvar gnus-cloud-sequence 1) + +(defvar gnus-cloud-method nil + "The IMAP select method used to store the cloud data.") + +(defun gnus-cloud-make-chunk (elems) + (with-temp-buffer + (insert (format "Version %s\n" gnus-cloud-version)) + (insert (gnus-cloud-insert-data elems)) + (buffer-string))) + +(defun gnus-cloud-insert-data (elems) + (mm-with-unibyte-buffer + (dolist (elem elems) + (cond + ((eq (plist-get elem :type) :file) + (let (length data) + (mm-with-unibyte-buffer + (insert-file-contents-literally (plist-get elem :file-name)) + (setq length (buffer-size) + data (buffer-string))) + (insert (format "(:type :file :file-name %S :timestamp %S :length %d)\n" + (plist-get elem :file-name) + (plist-get elem :timestamp) + length)) + (insert data) + (insert "\n"))) + ((eq (plist-get elem :type) :data) + (insert (format "(:type :data :name %S :length %d)\n" + (plist-get elem :name) + (with-current-buffer (plist-get elem :buffer) + (buffer-size)))) + (insert-buffer-substring (plist-get elem :buffer)) + (insert "\n")) + ((eq (plist-get elem :type) :delete) + (insert (format "(:type :delete :file-name %S)\n" + (plist-get elem :file-name)))))) + (gnus-cloud-encode-data) + (buffer-string))) + +(defun gnus-cloud-encode-data () + (call-process-region (point-min) (point-max) "gzip" + t (current-buffer) nil + "-c") + (base64-encode-region (point-min) (point-max))) + +(defun gnus-cloud-decode-data () + (base64-decode-region (point-min) (point-max)) + (call-process-region (point-min) (point-max) "gunzip" + t (current-buffer) nil + "-c")) + +(defun gnus-cloud-parse-chunk () + (save-excursion + (goto-char (point-min)) + (unless (looking-at "Version \\([0-9]+\\)") + (error "Not a valid Cloud chunk in the current buffer")) + (forward-line 1) + (let ((version (string-to-number (match-string 1))) + (data (buffer-substring (point) (point-max)))) + (mm-with-unibyte-buffer + (insert data) + (cond + ((= version 1) + (gnus-cloud-decode-data) + (goto-char (point-min)) + (gnus-cloud-parse-version-1)) + (t + (error "Unsupported Cloud chunk version %s" version))))))) + +(defun gnus-cloud-parse-version-1 () + (let ((elems nil)) + (while (not (eobp)) + (while (and (not (eobp)) + (not (looking-at "(:type"))) + (forward-line 1)) + (unless (eobp) + (let ((spec (ignore-errors (read (current-buffer)))) + length) + (when (and (consp spec) + (memq (plist-get spec :type) '(:file :data :delete))) + (setq length (plist-get spec :length)) + (push (append spec + (list + :contents (buffer-substring (1+ (point)) + (+ (point) 1 length)))) + elems) + (goto-char (+ (point) 1 length)))))) + (nreverse elems))) + +(defun gnus-cloud-update-data (elems) + (dolist (elem elems) + (let ((type (plist-get elem :type))) + (cond + ((eq type :data) + ) + ((eq type :delete) + (gnus-cloud-delete-file (plist-get elem :file-name)) + ) + ((eq type :file) + (gnus-cloud-update-file elem)) + (t + (message "Unknown type %s; ignoring" type)))))) + +(defun gnus-cloud-update-file (elem) + (let ((file-name (plist-get elem :file-name)) + (date (plist-get elem :timestamp)) + (contents (plist-get elem :contents))) + (unless (gnus-cloud-file-covered-p file-name) + (message "%s isn't covered by the cloud; ignoring" file-name)) + (when (or (not (file-exists-p file-name)) + (and (file-exists-p file-name) + (mm-with-unibyte-buffer + (insert-file-contents-literally file-name) + (not (equal (buffer-string) contents))))) + (gnus-cloud-replace-file file-name date contents)))) + +(defun gnus-cloud-replace-file (file-name date new-contents) + (mm-with-unibyte-buffer + (insert new-contents) + (when (file-exists-p file-name) + (rename-file file-name (car (find-backup-file-name file-name)))) + (write-region (point-min) (point-max) file-name) + (set-file-times file-name (parse-iso8601-time-string date)))) + +(defun gnus-cloud-delete-file (file-name) + (unless (gnus-cloud-file-covered-p file-name) + (message "%s isn't covered by the cloud; ignoring" file-name)) + (when (file-exists-p file-name) + (rename-file file-name (car (find-backup-file-name file-name))))) + +(defun gnus-cloud-file-covered-p (file-name) + (let ((matched nil)) + (dolist (elem gnus-cloud-synced-files) + (cond + ((stringp elem) + (when (equal elem file-name) + (setq matched t))) + ((consp elem) + (when (and (equal (directory-file-name (plist-get elem :directory)) + (directory-file-name (file-name-directory file-name))) + (string-match (plist-get elem :match) + (file-name-nondirectory file-name))) + (setq matched t))))) + matched)) + +(defun gnus-cloud-all-files () + (let ((files nil)) + (dolist (elem gnus-cloud-synced-files) + (cond + ((stringp elem) + (push elem files)) + ((consp elem) + (dolist (file (directory-files (plist-get elem :directory) + nil + (plist-get elem :match))) + (push (format "%s/%s" + (directory-file-name (plist-get elem :directory)) + file) + files))))) + (nreverse files))) + +(defvar gnus-cloud-file-timestamps nil) + +(defun gnus-cloud-files-to-upload (&optional full) + (let ((files nil) + timestamp) + (dolist (file (gnus-cloud-all-files)) + (if (file-exists-p file) + (when (setq timestamp (gnus-cloud-file-new-p file full)) + (push `(:type :file :file-name ,file :timestamp ,timestamp) files)) + (when (assoc file gnus-cloud-file-timestamps) + (push `(:type :delete :file-name ,file) files)))) + (nreverse files))) + +(defun gnus-cloud-file-new-p (file full) + (let ((timestamp (format-time-string + "%FT%T%z" (nth 5 (file-attributes file)))) + (old (cadr (assoc file gnus-cloud-file-timestamps)))) + (when (or full + (null old) + (string< old timestamp)) + timestamp))) + +(declare-function gnus-activate-group "gnus-start" + (group &optional scan dont-check method dont-sub-check)) +(declare-function gnus-subscribe-group "gnus-start" + (group &optional previous method)) + +(defun gnus-cloud-ensure-cloud-group () + (let ((method (if (stringp gnus-cloud-method) + (gnus-server-to-method gnus-cloud-method) + gnus-cloud-method))) + (unless (or (gnus-active gnus-cloud-group-name) + (gnus-activate-group gnus-cloud-group-name nil nil + gnus-cloud-method)) + (and (gnus-request-create-group gnus-cloud-group-name gnus-cloud-method) + (gnus-activate-group gnus-cloud-group-name nil nil gnus-cloud-method) + (gnus-subscribe-group gnus-cloud-group-name))))) + +(defun gnus-cloud-upload-data (&optional full) + (gnus-cloud-ensure-cloud-group) + (with-temp-buffer + (let ((elems (gnus-cloud-files-to-upload full))) + (insert (format "Subject: (sequence: %d type: %s)\n" + gnus-cloud-sequence + (if full :full :partial))) + (insert "From: nobody@invalid.com\n") + (insert "\n") + (insert (gnus-cloud-make-chunk elems)) + (when (gnus-request-accept-article gnus-cloud-group-name gnus-cloud-method + t t) + (setq gnus-cloud-sequence (1+ gnus-cloud-sequence)) + (gnus-cloud-add-timestamps elems))))) + +(defun gnus-cloud-add-timestamps (elems) + (dolist (elem elems) + (let* ((file-name (plist-get elem :file-name)) + (old (assoc file-name gnus-cloud-file-timestamps))) + (when old + (setq gnus-cloud-file-timestamps + (delq old gnus-cloud-file-timestamps))) + (push (list file-name (plist-get elem :timestamp)) + gnus-cloud-file-timestamps)))) + +(defun gnus-cloud-available-chunks () + (gnus-activate-group gnus-cloud-group-name nil nil gnus-cloud-method) + (let* ((group (gnus-group-full-name gnus-cloud-group-name gnus-cloud-method)) + (active (gnus-active group)) + headers head) + (when (gnus-retrieve-headers (gnus-uncompress-range active) group) + (with-current-buffer nntp-server-buffer + (goto-char (point-min)) + (while (and (not (eobp)) + (setq head (nnheader-parse-head))) + (push head headers)))) + (sort (nreverse headers) + (lambda (h1 h2) + (> (gnus-cloud-chunk-sequence (mail-header-subject h1)) + (gnus-cloud-chunk-sequence (mail-header-subject h2))))))) + +(defun gnus-cloud-chunk-sequence (string) + (if (string-match "sequence: \\([0-9]+\\)" string) + (string-to-number (match-string 1 string)) + 0)) + +(defun gnus-cloud-prune-old-chunks (headers) + (let ((headers (reverse headers)) + (found nil)) + (while (and headers + (not found)) + (when (string-match "type: :full" (mail-header-subject (car headers))) + (setq found t)) + (pop headers)) + ;; All the chunks that are older than the newest :full chunk can be + ;; deleted. + (when headers + (gnus-request-expire-articles + (mapcar (lambda (h) + (mail-header-number h)) + (nreverse headers)) + (gnus-group-full-name gnus-cloud-group-name gnus-cloud-method))))) + +(defun gnus-cloud-download-data () + (let ((articles nil) + chunks) + (dolist (header (gnus-cloud-available-chunks)) + (when (> (gnus-cloud-chunk-sequence (mail-header-subject header)) + gnus-cloud-sequence) + (push (mail-header-number header) articles))) + (when articles + (nnimap-request-articles (nreverse articles) gnus-cloud-group-name) + (with-current-buffer nntp-server-buffer + (goto-char (point-min)) + (while (re-search-forward "^Version " nil t) + (beginning-of-line) + (push (gnus-cloud-parse-chunk) chunks) + (forward-line 1)))))) + +(defun gnus-cloud-server-p (server) + (member server gnus-cloud-covered-servers)) + +(defun gnus-cloud-collect-full-newsrc () + (let ((infos nil)) + (dolist (info (cdr gnus-newsrc-alist)) + (when (gnus-cloud-server-p + (gnus-method-to-server + (gnus-find-method-for-group (gnus-info-group info)))) + (push info infos))) + )) + +(provide 'gnus-cloud) + +;;; gnus-cloud.el ends here diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el index a49854193fe..424f2c09e59 100644 --- a/lisp/gnus/gnus-delay.el +++ b/lisp/gnus/gnus-delay.el @@ -98,7 +98,7 @@ DELAY is a string, giving the length of the time. Possible values are: (setq hour (string-to-number (match-string 1 delay)) minute (string-to-number (match-string 2 delay))) ;; Use current time, except... - (setq deadline (apply 'vector (decode-time (current-time)))) + (setq deadline (apply 'vector (decode-time))) ;; ... for minute and hour. (aset deadline 1 minute) (aset deadline 2 hour) @@ -153,7 +153,7 @@ DELAY is a string, giving the length of the time. Possible values are: (when (gnus-group-entry group) (gnus-activate-group group) (add-hook 'message-send-hook - (lambda () (message-remove-header gnus-delay-header))) + (lambda () (message-remove-header gnus-delay-header)) t) (setq articles (nndraft-articles)) (while (setq article (pop articles)) (gnus-request-head article group) diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el index ae3d703c48e..ca14dd0b6db 100644 --- a/lisp/gnus/gnus-fun.el +++ b/lisp/gnus/gnus-fun.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) @@ -44,6 +40,24 @@ :group 'gnus-fun :type 'directory) +(defcustom gnus-x-face-omit-files nil + "Regexp to match faces in `gnus-x-face-directory' to be omitted." + :version "25.1" + :group 'gnus-fun + :type 'string) + +(defcustom gnus-face-directory (expand-file-name "faces" gnus-directory) + "*Directory where Face PNG files are stored." + :version "25.1" + :group 'gnus-fun + :type 'directory) + +(defcustom gnus-face-omit-files nil + "Regexp to match faces in `gnus-face-directory' to be omitted." + :version "25.1" + :group 'gnus-fun + :type 'string) + (defcustom gnus-convert-pbm-to-x-face-command "pbmtoxbm %s | compface" "Command for converting a PBM to an X-Face." :version "22.1" @@ -86,35 +100,57 @@ PNG format." nil shell-command-switch command))) ;;;###autoload -(defun gnus-random-x-face () - "Return X-Face header data chosen randomly from `gnus-x-face-directory'." - (interactive) - (when (file-exists-p gnus-x-face-directory) - (let* ((files (directory-files gnus-x-face-directory t "\\.pbm$")) - (file (nth (random (length files)) files))) +(defun gnus--random-face-with-type (dir ext omit fun) + "Return file from DIR with extension EXT, omitting matches of OMIT, processed by FUN." + (when (file-exists-p dir) + (let* ((files + (remove nil (mapcar + (lambda (f) (unless (string-match (or omit "^$") f) f)) + (directory-files dir t ext)))) + (file (nth (random (length files)) files))) (when file - (gnus-shell-command-to-string - (format gnus-convert-pbm-to-x-face-command - (shell-quote-argument file))))))) + (funcall fun file))))) +;;;###autoload (autoload 'message-goto-eoh "message" nil t) +(autoload 'message-insert-header "message" nil t) + +(defun gnus--insert-random-face-with-type (fun type) + "Get a random face using FUN and insert it as a header TYPE. + +For instance, to insert an X-Face use `gnus-random-x-face' as FUN + and \"X-Face\" as TYPE." + (let ((data (funcall fun))) + (save-excursion + (if data + (progn (message-goto-eoh) + (insert type ": " data "\n")) + (message + "No face returned by the function %s." (symbol-name fun)))))) + + + +;;;###autoload +(defun gnus-random-x-face () + "Return X-Face header data chosen randomly from `gnus-x-face-directory'. + +Files matching `gnus-x-face-omit-files' are not considered." + (interactive) + (gnus--random-face-with-type gnus-x-face-directory "\\.pbm$" gnus-x-face-omit-files + (lambda (file) + (gnus-shell-command-to-string + (format gnus-convert-pbm-to-x-face-command + (shell-quote-argument file)))))) ;;;###autoload (defun gnus-insert-random-x-face-header () "Insert a random X-Face header from `gnus-x-face-directory'." (interactive) - (let ((data (gnus-random-x-face))) - (save-excursion - (message-goto-eoh) - (if data - (insert "X-Face: " data) - (message - "No face returned by `gnus-random-x-face'. Does %s/*.pbm exist?" - gnus-x-face-directory))))) + (gnus--insert-random-face-with-type 'gnus-random-x-face 'X-Face)) ;;;###autoload (defun gnus-x-face-from-file (file) - "Insert an X-Face header based on an image file. + "Insert an X-Face header based on an image FILE. Depending on `gnus-convert-image-to-x-face-command' it may accept different input formats." @@ -126,7 +162,7 @@ different input formats." ;;;###autoload (defun gnus-face-from-file (file) - "Return a Face header based on an image file. + "Return a Face header based on an image FILE. Depending on `gnus-convert-image-to-face-command' it may accept different input formats." @@ -191,6 +227,21 @@ FILE should be a PNG file that's 48x48 and smaller than or equal to (buffer-size))) (gnus-face-encode))) +;;;###autoload +(defun gnus-random-face () + "Return randomly chosen Face from `gnus-face-directory'. + +Files matching `gnus-face-omit-files' are not considered." + (interactive) + (gnus--random-face-with-type gnus-face-directory "\\.png$" + gnus-face-omit-files + 'gnus-convert-png-to-face)) + +;;;###autoload +(defun gnus-insert-random-face-header () + "Insert a random Face header from `gnus-face-directory'." + (gnus--insert-random-face-with-type 'gnus-random-face 'Face)) + (defface gnus-x-face '((t (:foreground "black" :background "white"))) "Face to show X-Face. The colors from this face are used as the foreground and background diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 8e1cd182215..e22138b7028 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (defvar tool-bar-mode) @@ -2463,7 +2459,7 @@ the bug number, and browsing the URL must return mbox output." (let ((coding-system-for-write 'binary) (coding-system-for-read 'binary)) (with-temp-file tmpfile - (set-buffer-multibyte nil) + (mm-disable-multibyte) (dolist (id ids) (url-insert-file-contents (format mbox-url id))) (goto-char (point-min)) @@ -4079,7 +4075,9 @@ If DONT-SCAN is non-nil, scan non-activated groups as well." (gnus-group-remove-mark group) ;; Bypass any previous denials from the server. (gnus-remove-denial (setq method (gnus-find-method-for-group group))) - (if (gnus-activate-group group (if dont-scan nil 'scan) nil method) + (if (or (and (not dont-scan) + (gnus-request-group-scan group (gnus-get-info group))) + (gnus-activate-group group (if dont-scan nil 'scan) nil method)) (let ((info (gnus-get-info group)) (active (gnus-active group))) (when info @@ -4316,6 +4314,11 @@ The hook `gnus-suspend-gnus-hook' is called before actually suspending." (gnus-kill-buffer buf))) (setq gnus-backlog-articles nil) (gnus-kill-gnus-frames) + ;; Closing all the backends is useful (for instance) when when the + ;; IP addresses have changed and you need to reconnect. + (dolist (elem gnus-opened-servers) + (gnus-close-server (car elem)) + (setcar (cdr elem) 'closed)) (when group-buf (bury-buffer group-buf) (delete-windows-on group-buf t)))) diff --git a/lisp/gnus/gnus-html.el b/lisp/gnus/gnus-html.el index 4c2496dc8fd..b706de7430e 100644 --- a/lisp/gnus/gnus-html.el +++ b/lisp/gnus/gnus-html.el @@ -28,10 +28,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'gnus-art) diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el index e85a2e63d7a..dc423d85d19 100644 --- a/lisp/gnus/gnus-icalendar.el +++ b/lisp/gnus/gnus-icalendar.el @@ -38,6 +38,7 @@ (require 'gmm-utils) (require 'mm-decode) (require 'gnus-sum) +(require 'gnus-art) (eval-when-compile (require 'cl)) @@ -140,12 +141,13 @@ (defmethod gnus-icalendar-event:start ((event gnus-icalendar-event)) (format-time-string "%Y-%m-%d %H:%M" (gnus-icalendar-event:start-time event))) -(defun gnus-icalendar-event--decode-datefield (ical field) - (let* ((date (icalendar--get-event-property ical field)) - (date-props (icalendar--get-event-property-attributes ical field)) - (tz (plist-get date-props 'TZID))) - - (date-to-time (timezone-make-date-arpa-standard date nil tz)))) +(defun gnus-icalendar-event--decode-datefield (event field zone-map) + (let* ((dtdate (icalendar--get-event-property event field)) + (dtdate-zone (icalendar--find-time-zone + (icalendar--get-event-property-attributes + event field) zone-map)) + (dtdate-dec (icalendar--decode-isodatetime dtdate nil dtdate-zone))) + (apply 'encode-time dtdate-dec))) (defun gnus-icalendar-event--find-attendee (ical name-or-email) (let* ((event (car (icalendar--all-events ical))) @@ -170,7 +172,9 @@ (caddr event)))) (gmm-labels ((attendee-role (prop) (plist-get (cadr prop) 'ROLE)) - (attendee-name (prop) (plist-get (cadr prop) 'CN)) + (attendee-name (prop) + (or (plist-get (cadr prop) 'CN) + (replace-regexp-in-string "^.*MAILTO:" "" (caddr prop)))) (attendees-by-type (type) (gnus-remove-if-not (lambda (p) (string= (attendee-role p) type)) @@ -201,10 +205,11 @@ ("REQ-PARTICIPANT" 'required) ("OPT-PARTICIPANT" 'optional) (_ 'non-participant))) + (zone-map (icalendar--convert-all-timezones ical)) (args (list :method method :organizer organizer - :start-time (gnus-icalendar-event--decode-datefield event 'DTSTART) - :end-time (gnus-icalendar-event--decode-datefield event 'DTEND) + :start-time (gnus-icalendar-event--decode-datefield event 'DTSTART zone-map) + :end-time (gnus-icalendar-event--decode-datefield event 'DTEND zone-map) :rsvp (string= (plist-get (cadr attendee) 'RSVP) "TRUE") :participation-type participation-type :req-participants (car attendee-names) @@ -452,7 +457,6 @@ Return nil for non-recurring EVENT." "Not replied yet")) (props `(("ICAL_EVENT" . "t") ("ID" . ,uid) - ("DT" . ,(gnus-icalendar-event:org-timestamp event)) ("ORGANIZER" . ,(gnus-icalendar-event:organizer event)) ("LOCATION" . ,(gnus-icalendar-event:location event)) ("PARTICIPATION_TYPE" . ,(symbol-name (gnus-icalendar-event:participation-type event))) @@ -470,7 +474,9 @@ Return nil for non-recurring EVENT." (when description (save-restriction (narrow-to-region (point) (point)) - (insert description) + (insert (gnus-icalendar-event:org-timestamp event) + "\n\n" + description) (indent-region (point-min) (point-max) 2) (fill-region (point-min) (point-max)))) @@ -551,20 +557,31 @@ is searched." (when description (save-restriction (narrow-to-region (point) (point)) - (insert "\n" (replace-regexp-in-string "[\n]+$" "\n" description) "\n") + (insert "\n" + (gnus-icalendar-event:org-timestamp event) + "\n\n" + (replace-regexp-in-string "[\n]+$" "\n" description) + "\n") (indent-region (point-min) (point-max) (1+ entry-outline-level)) (fill-region (point-min) (point-max)))) ;; update entry properties - (org-entry-put event-pos "DT" (gnus-icalendar-event:org-timestamp event)) - (org-entry-put event-pos "ORGANIZER" organizer) - (org-entry-put event-pos "LOCATION" location) - (org-entry-put event-pos "PARTICIPATION_TYPE" (symbol-name participation-type)) - (org-entry-put event-pos "REQ_PARTICIPANTS" (gnus-icalendar--format-participant-list req-participants)) - (org-entry-put event-pos "OPT_PARTICIPANTS" (gnus-icalendar--format-participant-list opt-participants)) - (org-entry-put event-pos "RRULE" recur) - (when reply-status (org-entry-put event-pos "REPLY" - (capitalize (symbol-name reply-status)))) + (gmm-labels + ((update-org-entry (position property value) + (if (or (null value) + (string= value "")) + (org-entry-delete position property) + (org-entry-put position property value)))) + + (update-org-entry event-pos "ORGANIZER" organizer) + (update-org-entry event-pos "LOCATION" location) + (update-org-entry event-pos "PARTICIPATION_TYPE" (symbol-name participation-type)) + (update-org-entry event-pos "REQ_PARTICIPANTS" (gnus-icalendar--format-participant-list req-participants)) + (update-org-entry event-pos "OPT_PARTICIPANTS" (gnus-icalendar--format-participant-list opt-participants)) + (update-org-entry event-pos "RRULE" recur) + (update-org-entry event-pos "REPLY" + (if reply-status (capitalize (symbol-name reply-status)) + "Not replied yet"))) (save-buffer))))))))) @@ -661,8 +678,9 @@ Gnus will only offer you the Accept/Tentative/Decline buttons for calendar events if any of your identities matches at least one RSVP participant. -Your identity is guessed automatically from the variables `user-full-name', -`user-mail-address', and `gnus-ignored-from-addresses'. +Your identity is guessed automatically from the variables +`user-full-name', `user-mail-address', +`gnus-ignored-from-addresses' and `message-alternative-emails'. If you need even more aliases you can define them here. It really only makes sense to define names or email addresses." @@ -688,6 +706,7 @@ These will be used to retrieve the RSVP information from ical events." (list user-full-name (regexp-quote user-mail-address) ; NOTE: these can be lists gnus-ignored-from-addresses ; already regexp-quoted + message-alternative-emails ; (mapcar #'regexp-quote gnus-icalendar-additional-identities))))) ;; TODO: make the template customizable diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el index 487b85f581d..dd938ce0758 100644 --- a/lisp/gnus/gnus-int.el +++ b/lisp/gnus/gnus-int.el @@ -439,6 +439,14 @@ If it is down, start it up (again)." (funcall (gnus-get-function gnus-command-method func) (gnus-group-real-name group) (nth 1 gnus-command-method))))) +(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-description)) + (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)))) + (defun gnus-close-group (group) "Request the GROUP be closed." (let ((gnus-command-method (inline (gnus-find-method-for-group group)))) diff --git a/lisp/gnus/gnus-mlspl.el b/lisp/gnus/gnus-mlspl.el index 0b42bc23d3d..56166f2fca2 100644 --- a/lisp/gnus/gnus-mlspl.el +++ b/lisp/gnus/gnus-mlspl.el @@ -146,20 +146,27 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: (any \"\\\\(foo@nowhere\\\\.gov\\\\|foo@localhost\\\\|foo-redist@home\\\\)\" - \"bugs-foo\" - \"rambling-foo\" \"mail.foo\")) \"mail.others\")" - (let* ((newsrc (cdr gnus-newsrc-alist)) - split) - (dolist (info newsrc) - (let ((group (gnus-info-group info)) - (params (gnus-info-params info))) - ;; For all GROUPs that match the specified GROUPS - (when (or (not groups) - (and (listp groups) - (memq group groups)) - (and (stringp groups) - (string-match groups group))) - (let ((split-spec (assoc 'split-spec params)) group-clean) - ;; Remove backend from group name - (setq group-clean (string-match ":" group)) + (let ((group-names (if (and (listp groups) + (not (null groups))) + groups + (delete-dups + (delq nil + (mapcar + (lambda (info) + (let ((group (gnus-info-group info))) + (if (or (not groups) + (and (stringp groups) + (string-match groups group))) + group))) + (append gnus-newsrc-alist gnus-parameters)))))) + split) + (dolist (group group-names) + (let ((params (gnus-group-find-parameter group))) + ;; Skip groups without param (or nonexistent) + (when (not (null params)) + (let ((split-spec (assoc 'split-spec params)) group-clean) + ;; Remove backend from group name + (setq group-clean (string-match ":" group)) (setq group-clean (if group-clean (substring group (1+ group-clean)) diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 3a7302fb786..6c80c0daca6 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el @@ -1726,7 +1726,20 @@ this is a reply." (var (or gnus-outgoing-message-group gnus-message-archive-group)) (gcc-self-val (and group (not (gnus-virtual-group-p group)) - (gnus-group-find-parameter group 'gcc-self))) + (gnus-group-find-parameter group 'gcc-self t))) + (gcc-self-get (lambda (gcc-self-val group) + (if (stringp gcc-self-val) + (if (string-match " " gcc-self-val) + (concat "\"" gcc-self-val "\"") + gcc-self-val) + ;; In nndoc groups, we use the parent group name + ;; instead of the current group. + (let ((group (or (gnus-group-find-parameter + gnus-newsgroup-name 'parent-group) + group))) + (if (string-match " " group) + (concat "\"" group "\"") + group))))) result (groups (cond @@ -1777,19 +1790,11 @@ this is a reply." (if gcc-self-val ;; Use the `gcc-self' param value instead. (progn - (insert - (if (stringp gcc-self-val) - (if (string-match " " gcc-self-val) - (concat "\"" gcc-self-val "\"") - gcc-self-val) - ;; In nndoc groups, we use the parent group name - ;; instead of the current group. - (let ((group (or (gnus-group-find-parameter - gnus-newsgroup-name 'parent-group) - group))) - (if (string-match " " group) - (concat "\"" group "\"") - group)))) + (insert (if (listp gcc-self-val) + (mapconcat (lambda (val) + (funcall gcc-self-get val group)) + gcc-self-val ", ") + (funcall gcc-self-get gcc-self-val group))) (if (not (eq gcc-self-val 'none)) (insert "\n") (gnus-delete-line))) @@ -1826,7 +1831,7 @@ this is a reply." (with-current-buffer gnus-summary-buffer gnus-posting-styles) gnus-posting-styles)) - style match attribute value v results + style match attribute value v results matched-string filep name address element) ;; If the group has a posting-style parameter, add it at the end with a ;; regexp matching everything, to be sure it takes precedence over all @@ -1846,7 +1851,9 @@ this is a reply." (when (cond ((stringp match) ;; Regexp string match on the group name. - (string-match match group)) + (when (string-match match group) + (setq matched-string group) + t)) ((eq match 'header) ;; Obsolete format of header match. (and (gnus-buffer-live-p gnus-article-copy) @@ -1875,7 +1882,8 @@ this is a reply." (nnheader-narrow-to-headers) (let ((header (message-fetch-field (nth 1 match)))) (and header - (string-match (nth 2 match) header))))))) + (string-match (nth 2 match) header) + (setq matched-string header))))))) (t ;; This is a form to be evalled. (eval match))))) @@ -1896,10 +1904,11 @@ this is a reply." (setq v (cond ((stringp value) - (if (and (stringp match) + (if (and matched-string (gnus-string-match-p "\\\\[&[:digit:]]" value) (match-beginning 1)) - (gnus-match-substitute-replacement value nil nil group) + (gnus-match-substitute-replacement value nil nil + matched-string) value)) ((or (symbolp value) (functionp value)) diff --git a/lisp/gnus/gnus-notifications.el b/lisp/gnus/gnus-notifications.el index 05f97095e37..2941cc46e4a 100644 --- a/lisp/gnus/gnus-notifications.el +++ b/lisp/gnus/gnus-notifications.el @@ -92,9 +92,9 @@ Return a notification id if any, or t on success." :body subject :actions '("read" "Read") :on-action 'gnus-notifications-action - :app-icon (or photo-file - (gnus-funcall-no-warning - 'image-search-load-path "gnus/gnus.png")) + :app-icon (gnus-funcall-no-warning + 'image-search-load-path "gnus/gnus.png") + :image-path photo-file :app-name "Gnus" :category "email.arrived" :timeout gnus-notifications-timeout) @@ -102,6 +102,9 @@ Return a notification id if any, or t on success." ;; Don't return an id t)) +(declare-function gravatar-retrieve-synchronously "gravatar.el" + (mail-address)) + (defun gnus-notifications-get-photo (mail-address) "Get photo for mail address." (let ((google-photo (when (and gnus-notifications-use-google-contacts diff --git a/lisp/gnus/gnus-picon.el b/lisp/gnus/gnus-picon.el index 47a1d6d147a..62b18b40453 100644 --- a/lisp/gnus/gnus-picon.el +++ b/lisp/gnus/gnus-picon.el @@ -37,10 +37,6 @@ ;; ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'gnus) diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 7dab242425d..9cfca1290c5 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -176,6 +176,7 @@ nnmairix groups are specifically excluded because they are ephemeral." (make-obsolete-variable 'gnus-registry-max-track-groups nil "23.4") (make-obsolete-variable 'gnus-registry-entry-caching nil "23.4") (make-obsolete-variable 'gnus-registry-trim-articles-without-groups nil "23.4") +(make-obsolete-variable 'gnus-registry-max-pruned-entries nil "24.4") (defcustom gnus-registry-track-extra '(subject sender recipient) "Whether the registry should track extra data about a message. @@ -231,7 +232,7 @@ the Bit Bucket." (defcustom gnus-registry-cache-file (nnheader-concat (or gnus-dribble-directory gnus-home-directory "~/") - ".gnus.registry.eioio") + ".gnus.registry.eieio") "File where the Gnus registry will be stored." :group 'gnus-registry :type 'file) @@ -242,12 +243,38 @@ the Bit Bucket." :type '(radio (const :format "Unlimited " nil) (integer :format "Maximum number: %v"))) -(defcustom gnus-registry-max-pruned-entries nil - "Maximum number of pruned entries in the registry, nil for unlimited." - :version "24.1" +(defcustom gnus-registry-prune-factor 0.1 + "When pruning, try to prune back to this factor less than the maximum size. + +In order to prevent constant pruning, we prune back to a number +somewhat less than the maximum size. This option controls +exactly how much less. For example, given a maximum size of +50000 and a prune factor of 0.1, the pruning process will try to +cut the registry back to \(- 50000 \(* 50000 0.1\)\) -> 45000 +entries. The pruning process is constrained by the presence of +\"precious\" entries." + :version "24.4" :group 'gnus-registry - :type '(radio (const :format "Unlimited " nil) - (integer :format "Maximum number: %v"))) + :type 'float) + +(defcustom gnus-registry-default-sort-function + #'gnus-registry-sort-by-creation-time + "Sort function to use when pruning the registry. + +Entries which sort to the front of the list will be pruned +first. + +This can slow pruning down. Set to nil to perform no sorting." + :version "24.4" + :group 'gnus-registry + :type 'symbol) + +(defun gnus-registry-sort-by-creation-time (l r) + "Sort older entries to front of list." + ;; Pruning starts from the front of the list. + (time-less-p + (cadr (assq 'creation-time r)) + (cadr (assq 'creation-time l)))) (defun gnus-registry-fixup-registry (db) (when db @@ -255,14 +282,12 @@ the Bit Bucket." (oset db :precious (append gnus-registry-extra-entries-precious '())) - (oset db :max-hard + (oset db :max-size (or gnus-registry-max-entries most-positive-fixnum)) (oset db :prune-factor - 0.1) - (oset db :max-soft - (or gnus-registry-max-pruned-entries - most-positive-fixnum)) + (or gnus-registry-prune-factor + 0.1)) (oset db :tracked (append gnus-registry-track-extra '(mark group keyword))) @@ -278,8 +303,8 @@ the Bit Bucket." "Gnus Registry" :file (or file gnus-registry-cache-file) ;; these parameters are set in `gnus-registry-fixup-registry' - :max-hard most-positive-fixnum - :max-soft most-positive-fixnum + :max-size most-positive-fixnum + :version registry-db-version :precious nil :tracked nil))) @@ -295,22 +320,27 @@ This is not required after changing `gnus-registry-cache-file'." (gnus-message 4 "Remaking the Gnus registry") (setq gnus-registry-db (gnus-registry-make-db)))) -(defun gnus-registry-read () - "Read the registry cache file." +(defun gnus-registry-load () + "Load the registry from the cache file." (interactive) (let ((file gnus-registry-cache-file)) (condition-case nil - (progn - (gnus-message 5 "Reading Gnus registry from %s..." file) - (setq gnus-registry-db - (gnus-registry-fixup-registry - (condition-case nil - (with-no-warnings - (eieio-persistent-read file 'registry-db)) - ;; Older EIEIO versions do not check the class name. - ('wrong-number-of-arguments - (eieio-persistent-read file))))) - (gnus-message 5 "Reading Gnus registry from %s...done" file)) + (gnus-registry-read file) + (file-error + ;; Fix previous mis-naming of the registry file. + (let ((old-file-name + (concat (file-name-sans-extension + gnus-registry-cache-file) + ".eioio"))) + (if (and (file-exists-p old-file-name) + (yes-or-no-p + (format "Rename registry file from %s to %s? " + old-file-name file))) + (progn + (gnus-registry-read old-file-name) + (oset gnus-registry-db :file file) + (gnus-message 1 "Registry filename changed to %s" file)) + (gnus-registry-remake-db t)))) (error (gnus-message 1 @@ -318,6 +348,19 @@ This is not required after changing `gnus-registry-cache-file'." file) (gnus-registry-remake-db t))))) +(defun gnus-registry-read (file) + "Do the actual reading of the registry persistence file." + (gnus-message 5 "Reading Gnus registry from %s..." file) + (setq gnus-registry-db + (gnus-registry-fixup-registry + (condition-case nil + (with-no-warnings + (eieio-persistent-read file 'registry-db)) + ;; Older EIEIO versions do not check the class name. + ('wrong-number-of-arguments + (eieio-persistent-read file))))) + (gnus-message 5 "Reading Gnus registry from %s...done" file)) + (defun gnus-registry-save (&optional file db) "Save the registry cache file." (interactive) @@ -325,7 +368,8 @@ This is not required after changing `gnus-registry-cache-file'." (db (or db gnus-registry-db))) (gnus-message 5 "Saving Gnus registry (%d entries) to %s..." (registry-size db) file) - (registry-prune db) + (registry-prune + db gnus-registry-default-sort-function) ;; TODO: call (gnus-string-remove-all-properties v) on all elements? (eieio-persistent-save db file) (gnus-message 5 "Saving Gnus registry (size %d) to %s...done" @@ -1032,7 +1076,8 @@ only the last one's marks are returned." "Just like `registry-insert' but tries to prune on error." (when (registry-full db) (message "Trying to prune the registry because it's full") - (registry-prune db)) + (registry-prune + db gnus-registry-default-sort-function)) (registry-insert db id entry) entry) @@ -1090,7 +1135,7 @@ only the last one's marks are returned." (gnus-message 5 "Initializing the registry") (gnus-registry-install-hooks) (gnus-registry-install-shortcuts) - (gnus-registry-read)) + (gnus-registry-load)) ;; FIXME: Why autoload this function? ;;;###autoload @@ -1104,7 +1149,7 @@ only the last one's marks are returned." (add-hook 'nnmail-spool-hook 'gnus-registry-spool-action) (add-hook 'gnus-save-newsrc-hook 'gnus-registry-save) - (add-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read) + (add-hook 'gnus-read-newsrc-el-hook 'gnus-registry-load) (add-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)) @@ -1117,7 +1162,7 @@ only the last one's marks are returned." (remove-hook 'nnmail-spool-hook 'gnus-registry-spool-action) (remove-hook 'gnus-save-newsrc-hook 'gnus-registry-save) - (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read) + (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-load) (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids) (setq gnus-registry-enabled nil)) diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el index f5a8c0920d4..035a5901e69 100644 --- a/lisp/gnus/gnus-spec.el +++ b/lisp/gnus/gnus-spec.el @@ -24,9 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (eval-when-compile (require 'cl)) (defvar gnus-newsrc-file-version) diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el index 8c617b70867..d32f7cad3db 100644 --- a/lisp/gnus/gnus-srvr.el +++ b/lisp/gnus/gnus-srvr.el @@ -45,7 +45,7 @@ :group 'gnus-server :type 'hook) -(defcustom gnus-server-line-format " {%(%h:%w%)} %s%a\n" +(defcustom gnus-server-line-format " {%(%h:%w%)} %s%a%c\n" "Format of server lines. It works along the same lines as a normal formatting string, with some simple extensions. @@ -78,6 +78,16 @@ If nil, a faster, but more primitive, buffer is used instead." ;;; Internal variables. +(defvar gnus-tmp-how) +(defvar gnus-tmp-name) +(defvar gnus-tmp-where) +(defvar gnus-tmp-status) +(defvar gnus-tmp-agent) +(defvar gnus-tmp-cloud) +(defvar gnus-tmp-news-server) +(defvar gnus-tmp-news-method) +(defvar gnus-tmp-user-defined) + (defvar gnus-inserted-opened-servers nil) (defvar gnus-server-line-format-alist @@ -85,7 +95,8 @@ If nil, a faster, but more primitive, buffer is used instead." (?n gnus-tmp-name ?s) (?w gnus-tmp-where ?s) (?s gnus-tmp-status ?s) - (?a gnus-tmp-agent ?s))) + (?a gnus-tmp-agent ?s) + (?c gnus-tmp-cloud ?s))) (defvar gnus-server-mode-line-format-alist `((?S gnus-tmp-news-server ?s) @@ -127,6 +138,7 @@ If nil, a faster, but more primitive, buffer is used instead." ["Close" gnus-server-close-server t] ["Offline" gnus-server-offline-server t] ["Deny" gnus-server-deny-server t] + ["Toggle Cloud" gnus-server-toggle-cloud-server t] "---" ["Open All" gnus-server-open-all-servers t] ["Close All" gnus-server-close-all-servers t] @@ -172,6 +184,8 @@ If nil, a faster, but more primitive, buffer is used instead." "z" gnus-server-compact-server + "i" gnus-server-toggle-cloud-server + "\C-c\C-i" gnus-info-find-node "\C-c\C-b" gnus-bug)) @@ -185,6 +199,13 @@ If nil, a faster, but more primitive, buffer is used instead." (put 'gnus-server-agent-face 'face-alias 'gnus-server-agent) (put 'gnus-server-agent-face 'obsolete-face "22.1") +(defface gnus-server-cloud + '((((class color) (background light)) (:foreground "ForestGreen" :bold t)) + (((class color) (background dark)) (:foreground "PaleGreen" :bold t)) + (t (:bold t))) + "Face used for displaying AGENTIZED servers" + :group 'gnus-server-visual) + (defface gnus-server-opened '((((class color) (background light)) (:foreground "Green3" :bold t)) (((class color) (background dark)) (:foreground "Green1" :bold t)) @@ -228,6 +249,7 @@ If nil, a faster, but more primitive, buffer is used instead." (defvar gnus-server-font-lock-keywords '(("(\\(agent\\))" 1 'gnus-server-agent) + ("(\\(cloud\\))" 1 'gnus-server-cloud) ("(\\(opened\\))" 1 'gnus-server-opened) ("(\\(closed\\))" 1 'gnus-server-closed) ("(\\(offline\\))" 1 'gnus-server-offline) @@ -264,8 +286,9 @@ The following commands are available: '(gnus-server-font-lock-keywords t))) (gnus-run-mode-hooks 'gnus-server-mode-hook)) -(defun gnus-server-insert-server-line (gnus-tmp-name method) - (let* ((gnus-tmp-how (car method)) +(defun gnus-server-insert-server-line (name method) + (let* ((gnus-tmp-name name) + (gnus-tmp-how (car method)) (gnus-tmp-where (nth 1 method)) (elem (assoc method gnus-opened-servers)) (gnus-tmp-status @@ -282,6 +305,9 @@ The following commands are available: (gnus-tmp-agent (if (and gnus-agent (gnus-agent-method-p method)) " (agent)" + "")) + (gnus-tmp-cloud (if (gnus-cloud-server-p gnus-tmp-name) + " (cloud)" ""))) (beginning-of-line) (gnus-add-text-properties @@ -1084,6 +1110,27 @@ Requesting compaction of %s... (this may take a long time)" (let ((original (get-buffer gnus-original-article-buffer))) (and original (gnus-kill-buffer original)))))) +(defun gnus-server-toggle-cloud-server () + "Make the server under point be replicated in the Emacs Cloud." + (interactive) + (let ((server (gnus-server-server-name))) + (unless server + (error "No server on the current line")) + + (unless (gnus-method-option-p server 'cloud) + (error "The server under point doesn't support cloudiness")) + + (if (gnus-cloud-server-p server) + (setq gnus-cloud-covered-servers + (delete server gnus-cloud-covered-servers)) + (push server gnus-cloud-covered-servers)) + + (gnus-server-update-server server) + (gnus-message 1 (if (gnus-cloud-server-p server) + "Replication of %s in the cloud will start" + "Replication of %s in the cloud will stop") + server))) + (provide 'gnus-srvr) ;;; gnus-srvr.el ends here diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 496e5775bb6..aa2568d5559 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -30,6 +30,7 @@ (require 'gnus-spec) (require 'gnus-range) (require 'gnus-util) +(require 'gnus-cloud) (autoload 'message-make-date "message") (autoload 'gnus-agent-read-servers-validate "gnus-agent") (autoload 'gnus-agent-save-local "gnus-agent") @@ -441,6 +442,15 @@ See also `gnus-before-startup-hook'." :group 'gnus-newsrc :type 'hook) +(defcustom gnus-save-newsrc-file-check-timestamp nil + "Check the modification time of the newsrc.eld file before saving it. +When the newsrc.eld file is updated by multiple machines, +checking the file's modification time is a good way to avoid +overwriting updated data." + :version "25.1" + :group 'gnus-newsrc + :type 'boolean) + (defcustom gnus-save-newsrc-hook nil "A hook called before saving any of the newsrc files." :group 'gnus-newsrc @@ -888,6 +898,11 @@ If REGEXP is given, lines that match it will be deleted." (setq buffer-save-without-query t) (erase-buffer) (setq buffer-file-name dribble-file) + ;; The buffer may be shrunk a lot when deleting old entries. + ;; It caused the auto-saving to stop. + (if (featurep 'emacs) + (set (make-local-variable 'auto-save-include-big-deletions) t) + (set (make-local-variable 'disable-auto-save-when-buffer-shrinks) nil)) (auto-save-mode t) (buffer-disable-undo) (bury-buffer (current-buffer)) @@ -1461,7 +1476,7 @@ newsgroup." "Check whether a group has been activated or not. If SCAN, request a scan of that group as well. If METHOD, use that select method instead of determining the method based on the -group name. If DONT-CHECK, don't check check whether the group +group name. If DONT-CHECK, don't check whether the group actually exists. If DONT-SUB-CHECK or DONT-CHECK, don't let the backend check whether the group actually exists." (let ((method (or method (inline (gnus-find-method-for-group group)))) @@ -2777,6 +2792,7 @@ If FORCE is non-nil, the .newsrc file is read." 'msdos-long-file-names (lambda () t)))) +(defvar gnus-save-newsrc-file-last-timestamp nil) (defun gnus-save-newsrc-file (&optional force) "Save .newsrc file." ;; Note: We cannot save .newsrc file if all newsgroups are removed @@ -2815,12 +2831,30 @@ If FORCE is non-nil, the .newsrc file is read." (erase-buffer) (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file) + ;; check timestamp of `gnus-current-startup-file'.eld against + ;; `gnus-save-newsrc-file-last-timestamp' + (when gnus-save-newsrc-file-check-timestamp + (let* ((checkfile (concat gnus-current-startup-file ".eld")) + (mtime (nth 5 (file-attributes checkfile)))) + (when (and gnus-save-newsrc-file-last-timestamp + (time-less-p gnus-save-newsrc-file-last-timestamp + mtime)) + (unless (y-or-n-p + (format "%s was updated externally after %s, save?" + checkfile + (format-time-string + "%c" + gnus-save-newsrc-file-last-timestamp))) + (error "Couldn't save %s: updated externally" checkfile))))) + (if gnus-save-startup-file-via-temp-buffer (let ((coding-system-for-write gnus-ding-file-coding-system) (standard-output (current-buffer))) (gnus-gnus-to-quick-newsrc-format) (gnus-run-hooks 'gnus-save-quick-newsrc-hook) - (save-buffer)) + (save-buffer) + (setq gnus-save-newsrc-file-last-timestamp + (nth 5 (file-attributes buffer-file-name)))) (let ((coding-system-for-write gnus-ding-file-coding-system) (version-control gnus-backup-startup-file) (startup-file (concat gnus-current-startup-file ".eld")) @@ -2855,7 +2889,9 @@ If FORCE is non-nil, the .newsrc file is read." ;; Replace the existing startup file with the temp file. (rename-file working-file startup-file t) - (gnus-set-file-modes startup-file setmodes))) + (gnus-set-file-modes startup-file setmodes) + (setq gnus-save-newsrc-file-last-timestamp + (nth 5 (file-attributes startup-file))))) (condition-case nil (delete-file working-file) (file-error nil))))) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 134fbd6fcff..efe7a4d3d65 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -24,9 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (eval-when-compile (require 'cl)) (eval-when-compile @@ -2188,6 +2185,7 @@ increase the score of each group you read." (gnus-define-keys (gnus-summary-wash-mime-map "M" gnus-summary-wash-map) "w" gnus-article-decode-mime-words "c" gnus-article-decode-charset + "h" gnus-mime-buttonize-attachments-in-header "v" gnus-mime-view-all-parts "b" gnus-article-view-part) @@ -2394,6 +2392,8 @@ increase the score of each group you read." ["QP" gnus-article-de-quoted-unreadable t] ["Base64" gnus-article-de-base64-unreadable t] ["View MIME buttons" gnus-summary-display-buttonized t] + ["View MIME buttons in header" + gnus-mime-buttonize-attachments-in-header t] ["View all" gnus-mime-view-all-parts t] ["Verify and Decrypt" gnus-summary-force-verify-and-decrypt t] ["Encrypt body" gnus-article-encrypt-body @@ -7334,6 +7334,7 @@ If FORCE (the prefix), also save the .newsrc file(s)." (gnus-group-is-exiting-without-update-p t) (quit-config (gnus-group-quit-config group))) (when (or no-questions + (gnus-ephemeral-group-p group) gnus-expert-user (gnus-y-or-n-p "Discard changes to this group and exit? ")) (gnus-async-halt-prefetch) @@ -9085,6 +9086,41 @@ non-numeric or nil fetch the number specified by the (gnus-summary-limit-include-thread id))) (gnus-summary-show-thread)) +(defun gnus-summary-open-group-with-article (message-id) + "Open a group containing the article with the given MESSAGE-ID." + (interactive "sMessage-ID: ") + (require 'nndoc) + (with-temp-buffer + ;; Prepare a dummy article + (erase-buffer) + (insert "From nobody Tue Sep 13 22:05:34 2011\n\n") + + ;; Prepare pretty modelines for summary and article buffers + (let ((gnus-summary-mode-line-format "Found %G") + (gnus-article-mode-line-format + ;; Group names just get in the way here, especially the + ;; abbreviated ones + (if (string-match "%[gG]" gnus-article-mode-line-format) + (concat (substring gnus-article-mode-line-format + 0 (match-beginning 0)) + (substring gnus-article-mode-line-format (match-end 0))) + gnus-article-mode-line-format))) + + ;; Build an ephemeral group containing the dummy article (hidden) + (gnus-group-read-ephemeral-group + message-id + `(nndoc ,message-id + (nndoc-address ,(current-buffer)) + (nndoc-article-type mbox)) + :activate + (cons (current-buffer) gnus-current-window-configuration) + (not :request-only) + '(-1) ; :select-articles + (not :parameters) + 0)) ; :number + ;; Fetch the desired article + (gnus-summary-refer-article message-id))) + (defun gnus-summary-refer-article (message-id) "Fetch an article specified by MESSAGE-ID." (interactive "sMessage-ID: ") @@ -9298,7 +9334,7 @@ Obeys the standard process/prefix convention." ((gnus-group-read-ephemeral-group (setq vgroup (format "nnvirtual:%s-%s" gnus-newsgroup-name - (format-time-string "%Y%m%dT%H%M%S" (current-time)))) + (format-time-string "%Y%m%dT%H%M%S"))) `(nnvirtual ,vgroup (nnvirtual-component-groups ,groups)) t (cons (current-buffer) 'summary))) @@ -9748,6 +9784,8 @@ If ARG is a negative number, turn header display off." (declare-function article-narrow-to-head "gnus-art" ()) (declare-function gnus-article-hidden-text-p "gnus-art" (type)) (declare-function gnus-delete-wash-type "gnus-art" (type)) +(declare-function gnus-mime-buttonize-attachments-in-header + "gnus-art" (&optional interactive)) (defun gnus-summary-toggle-header (&optional arg) "Show the headers if they are hidden, or hide them if they are shown. @@ -9779,7 +9817,10 @@ If ARG is a negative number, hide the unwanted header lines." (gnus-treat-hide-boring-headers nil)) (gnus-delete-wash-type 'headers) (gnus-treat-article 'head)) - (gnus-treat-article 'head)) + (gnus-treat-article 'head) + ;; Add attachment buttons to the header. + (when gnus-mime-display-attachment-buttons-in-header + (gnus-mime-buttonize-attachments-in-header))) (widen) (if window (set-window-start window (goto-char (point-min)))) @@ -9829,6 +9870,7 @@ installed for this command to work." (if (not (and (condition-case nil (require 'idna) (file-error)) (mm-coding-system-p 'utf-8) + (symbol-value 'idna-program) (executable-find (symbol-value 'idna-program)))) (gnus-message 5 "GNU Libidn not installed properly (`idn' or `idna.el' missing)") @@ -10404,13 +10446,19 @@ This will be the case if the article has both been mailed and posted." (when (and (not (memq article es)) (gnus-data-find article)) (gnus-summary-mark-article article gnus-canceled-mark) - (run-hook-with-args 'gnus-summary-article-expire-hook - 'delete - (gnus-data-header - (assoc article (gnus-data-list nil))) - gnus-newsgroup-name - nil - nil))))))) + (run-hook-with-args + 'gnus-summary-article-expire-hook + 'delete + (gnus-data-header (assoc article (gnus-data-list nil))) + gnus-newsgroup-name + (cond + ((stringp nnmail-expiry-target) nnmail-expiry-target) + ((eq nnmail-expiry-target 'delete) nil) + (t + (let ((rescall (funcall nnmail-expiry-target + gnus-newsgroup-name))) + (if (stringp rescall) rescall nil)))) + nil))))))) (gnus-message 6 "Expiring articles...done"))))) (defun gnus-summary-expire-articles-now () @@ -10573,7 +10621,7 @@ groups." (let ((lines (count-lines (point) (point-max))) (length (- (point-max) (point))) (case-fold-search t) - (body (copy-marker (point)))) + (body (point-marker))) (goto-char (point-min)) (when (re-search-forward "^content-length:[ \t]\\([0-9]+\\)" body t) (delete-region (match-beginning 1) (match-end 1)) diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index d0df070bcdb..7bacaba286d 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -32,9 +32,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (eval-when-compile (require 'cl)) @@ -316,14 +313,10 @@ Symbols are also allowed; their print names are used instead." ;; Every version of Emacs Gnus supports has built-in float-time. ;; The featurep test silences an irritating compiler warning. -(eval-and-compile +(defalias 'gnus-float-time (if (or (featurep 'emacs) (fboundp 'float-time)) - (defalias 'gnus-float-time 'float-time) - (defun gnus-float-time (&optional time) - "Convert time value TIME to a floating point number. -TIME defaults to the current time." - (time-to-seconds (or time (current-time)))))) + 'float-time 'time-to-seconds)) ;;; Keymap macros. @@ -392,19 +385,20 @@ TIME defaults to the current time." (defun gnus-seconds-today () "Return the number of seconds passed today." - (let ((now (decode-time (current-time)))) + (let ((now (decode-time))) (+ (car now) (* (car (cdr now)) 60) (* (car (nthcdr 2 now)) 3600)))) (defun gnus-seconds-month () "Return the number of seconds passed this month." - (let ((now (decode-time (current-time)))) + (let ((now (decode-time))) (+ (car now) (* (car (cdr now)) 60) (* (car (nthcdr 2 now)) 3600) (* (- (car (nthcdr 3 now)) 1) 3600 24)))) (defun gnus-seconds-year () "Return the number of seconds passed this year." - (let ((now (decode-time (current-time))) - (days (format-time-string "%j" (current-time)))) + (let* ((current (current-time)) + (now (decode-time current)) + (days (format-time-string "%j" current))) (+ (car now) (* (car (cdr now)) 60) (* (car (nthcdr 2 now)) 3600) (* (- (string-to-number days) 1) 3600 24)))) @@ -1913,17 +1907,25 @@ Sizes are in pixels." image))) image))) +(eval-when-compile (require 'gmm-utils)) (defun gnus-recursive-directory-files (dir) - "Return all regular files below DIR." - (let (files) - (dolist (file (directory-files dir t)) - (when (and (not (member (file-name-nondirectory file) '("." ".."))) - (file-readable-p file)) - (cond - ((file-regular-p file) - (push file files)) - ((file-directory-p file) - (setq files (append (gnus-recursive-directory-files file) files)))))) + "Return all regular files below DIR. +The first found will be returned if a file has hard or symbolic links." + (let (files attr attrs) + (gmm-labels + ((fn (directory) + (dolist (file (directory-files directory t)) + (setq attr (file-attributes (file-truename file))) + (when (and (not (member attr attrs)) + (not (member (file-name-nondirectory file) + '("." ".."))) + (file-readable-p file)) + (push attr attrs) + (cond ((file-regular-p file) + (push file files)) + ((file-directory-p file) + (fn file))))))) + (fn dir)) files)) (defun gnus-list-memq-of-list (elements list) diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index e43b48fd6f6..30c89f5906f 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -29,10 +29,6 @@ (eval '(run-hooks 'gnus-load-hook)) -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'wid-edit) (require 'mm-util) @@ -309,6 +305,7 @@ be set in `.emacs' instead." (unless (featurep 'gnus-xmas) (defalias 'gnus-make-overlay 'make-overlay) + (defalias 'gnus-copy-overlay 'copy-overlay) (defalias 'gnus-delete-overlay 'delete-overlay) (defalias 'gnus-overlay-get 'overlay-get) (defalias 'gnus-overlay-put 'overlay-put) @@ -316,6 +313,7 @@ be set in `.emacs' instead." (defalias 'gnus-overlay-buffer 'overlay-buffer) (defalias 'gnus-overlay-start 'overlay-start) (defalias 'gnus-overlay-end 'overlay-end) + (defalias 'gnus-overlays-at 'overlays-at) (defalias 'gnus-overlays-in 'overlays-in) (defalias 'gnus-extent-detached-p 'ignore) (defalias 'gnus-extent-start-open 'ignore) @@ -1615,7 +1613,7 @@ slower." :type 'string) (defcustom gnus-valid-select-methods - '(("nntp" post address prompt-address physical-address) + '(("nntp" post address prompt-address physical-address cloud) ("nnspool" post address) ("nnvirtual" post-mail virtual prompt-address) ("nnmbox" mail respool address) @@ -1632,7 +1630,7 @@ slower." ("nnrss" none global) ("nnagent" post-mail) ("nnimap" post-mail address prompt-address physical-address respool - server-marks) + server-marks cloud) ("nnmaildir" mail respool address server-marks) ("nnnil" none)) "*An alist of valid select methods. @@ -2704,7 +2702,10 @@ such as a mark that says whether an article is stored in the cache gnus-newsrc-last-checked-date gnus-newsrc-alist gnus-server-alist gnus-killed-list gnus-zombie-list - gnus-topic-topology gnus-topic-alist) + gnus-topic-topology gnus-topic-alist + gnus-cloud-sequence + gnus-cloud-covered-servers + gnus-cloud-file-timestamps) "Gnus variables saved in the quick startup file.") (defvar gnus-newsrc-alist nil diff --git a/lisp/gnus/gravatar.el b/lisp/gnus/gravatar.el index e55780acc6f..fc536495a0b 100644 --- a/lisp/gnus/gravatar.el +++ b/lisp/gnus/gravatar.el @@ -138,9 +138,7 @@ You can provide a list of argument to pass to CB in CBARGS." "Retrieve MAIL-ADDRESS gravatar and returns it." (let ((url (gravatar-build-url mail-address))) (if (gravatar-cache-expired url) - (with-current-buffer (if (featurep 'xemacs) - (url-retrieve url) - (url-retrieve-synchronously url)) + (with-current-buffer (url-retrieve-synchronously url) (when gravatar-automatic-caching (url-store-in-cache (current-buffer))) (let ((data (gravatar-data->image))) diff --git a/lisp/gnus/ietf-drums.el b/lisp/gnus/ietf-drums.el index 734ce676c00..e681ecfb3d6 100644 --- a/lisp/gnus/ietf-drums.el +++ b/lisp/gnus/ietf-drums.el @@ -206,7 +206,6 @@ backslash and doublequote.") (1+ (point)) (progn (forward-sexp 1) (1- (point)))))))) (t - (message "Unknown symbol: %c" c) (forward-char 1)))) ;; If we found no display-name, then we look for comments. (if display-name diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el index 45512590677..eb05d714aba 100644 --- a/lisp/gnus/mail-source.el +++ b/lisp/gnus/mail-source.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (require 'format-spec) (eval-when-compile (require 'cl) diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el index 772024b5dce..01d8587f06a 100644 --- a/lisp/gnus/mailcap.el +++ b/lisp/gnus/mailcap.el @@ -153,6 +153,10 @@ This is a compatibility function for different Emacsen." (type . "application/zip") ("copiousoutput")) ("pdf" + (viewer . doc-view-mode) + (type . "application/pdf") + (test . (eq window-system 'x))) + ("pdf" (viewer . "gv -safer %s") (type . "application/pdf") (test . window-system) @@ -216,10 +220,6 @@ This is a compatibility function for different Emacsen." (test . (fboundp 'vm-mode)) (type . "message/rfc822")) ("rfc-*822" - (viewer . w3-mode) - (test . (fboundp 'w3-mode)) - (type . "message/rfc822")) - ("rfc-*822" (viewer . view-mode) (type . "message/rfc822"))) ("image" @@ -253,10 +253,6 @@ This is a compatibility function for different Emacsen." ("needsx11"))) ("text" ("plain" - (viewer . w3-mode) - (test . (fboundp 'w3-mode)) - (type . "text/plain")) - ("plain" (viewer . view-mode) (test . (fboundp 'view-mode)) (type . "text/plain")) @@ -267,10 +263,6 @@ This is a compatibility function for different Emacsen." (viewer . enriched-decode) (test . (fboundp 'enriched-decode)) (type . "text/enriched")) - ("html" - (viewer . mm-w3-prepare-buffer) - (test . (fboundp 'w3-prepare-buffer)) - (type . "text/html")) ("dns" (viewer . dns-mode) (test . (fboundp 'dns-mode)) @@ -1072,6 +1064,18 @@ If FORCE, re-parse even if already parsed." common-mime-info))))) commands)) +(defun mailcap-view-mime (type) + "View the data in the current buffer that has MIME type TYPE. +`mailcap-mime-data' determines the method to use." + (let ((method (mailcap-mime-info type))) + (if (stringp method) + (shell-command-on-region (point-min) (point-max) + ;; Use stdin as the "%s". + (format method "-") + (current-buffer) + t) + (funcall method)))) + (provide 'mailcap) ;;; mailcap.el ends here diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index c37b9397529..de7e9bab8ec 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -28,9 +28,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (eval-when-compile (require 'cl)) @@ -50,6 +47,7 @@ (require 'mml) (require 'rfc822) (require 'format-spec) +(require 'dired) (autoload 'mailclient-send-it "mailclient") ;; Emacs 22 or contrib/ @@ -606,7 +604,8 @@ Done before generating the new subject of a forward." regexp)) (defcustom message-forward-ignored-headers "^Content-Transfer-Encoding:\\|^X-Gnus" - "*All headers that match this regexp will be deleted when forwarding a message." + "*All headers that match this regexp will be deleted when forwarding a message. +This may also be a list of regexps." :version "21.1" :group 'message-forwarding :type '(repeat :value-to-internal (lambda (widget value) @@ -616,6 +615,19 @@ Done before generating the new subject of a forward." (widget-editable-list-match widget value))) regexp)) +(defcustom message-forward-included-headers nil + "If non-nil, delete non-matching headers when forwarding a message. +Only headers that match this regexp will be included. This +variable should be a regexp or a list of regexps." + :version "25.1" + :group 'message-forwarding + :type '(repeat :value-to-internal (lambda (widget value) + (custom-split-regexp-maybe value)) + :match (lambda (widget value) + (or (stringp value) + (widget-editable-list-match widget value))) + regexp)) + (defcustom message-ignored-cited-headers "." "*Delete these headers from the messages you yank." :group 'message-insertion @@ -970,8 +982,8 @@ configuration. See the variable `gnus-cite-attribution-suffix'." (defcustom message-citation-line-format "On %a, %b %d %Y, %N wrote:\n" "Format of the \"Whomever writes:\" line. -The string is formatted using `format-spec'. The following -constructs are replaced: +The string is formatted using `format-spec'. The following constructs +are replaced: %f The full From, e.g. \"John Doe <john.doe@example.invalid>\". %n The mail address, e.g. \"john.doe@example.invalid\". @@ -979,11 +991,14 @@ constructs are replaced: back to the mail address. %F The first name if present, e.g.: \"John\". %L The last name if present, e.g.: \"Doe\". + %Z, %z The time zone in the numeric form, e.g.:\"+0000\". All other format specifiers are passed to `format-time-string' -which is called using the date from the article your replying to. -Extracting the first (%F) and last name (%L) is done -heuristically, so you should always check it yourself. +which is called using the date from the article your replying to, but +the date in the formatted string will be expressed in the author's +time zone as much as possible. +Extracting the first (%F) and last name (%L) is done heuristically, +so you should always check it yourself. Please also read the note in the documentation of `message-citation-line-function'." @@ -1741,13 +1756,17 @@ no, only reply back to the author." :type '(radio (const :format "%v " nil) (string :format "FQDN: %v"))) -(defcustom message-use-idna (and (condition-case nil (require 'idna) - (file-error)) - (mm-coding-system-p 'utf-8) - (executable-find idna-program) - (string= (idna-to-ascii "räksmörgås") - "xn--rksmrgs-5wao1o") - t) +(defcustom message-use-idna + (and (or (mm-coding-system-p 'utf-8) + (condition-case nil + (let (mucs-ignore-version-incompatibilities) + (require 'un-define)) + (error))) + (condition-case nil (require 'idna) (file-error)) + idna-program + (executable-find idna-program) + (string= (idna-to-ascii "räksmörgås") "xn--rksmrgs-5wao1o") + t) "Whether to encode non-ASCII in domain names into ASCII according to IDNA. GNU Libidn, and in particular the elisp package \"idna.el\" and the external program \"idn\", must be installed for this @@ -1904,7 +1923,45 @@ You must have the \"hashcash\" binary installed, see `hashcash-path'." "cat\\|com\\|coop\\|edu\\|gov\\|" "info\\|int\\|jobs\\|" "mil\\|mobi\\|museum\\|name\\|net\\|" - "org\\|pro\\|tel\\|travel\\|uucp\\)") + "org\\|pro\\|tel\\|travel\\|uucp\\|" + ;; ICANN-era generic top-level domains + "academy\\|actor\\|agency\\|airforce\\|archi\\|associates\\|axa\\|" + "bar\\|bargains\\|bayern\\|beer\\|berlin\\|best\\|bid\\|bike\\|" + "biz\\|black\\|blackfriday\\|blue\\|boutique\\|build\\|builders\\|" + "buzz\\|cab\\|camera\\|camp\\|capital\\|cards\\|care\\|career\\|" + "careers\\|cash\\|catering\\|center\\|ceo\\|cheap\\|christmas\\|" + "church\\|citic\\|cleaning\\|clinic\\|clothing\\|club\\|codes\\|" + "coffee\\|college\\|cologne\\|com\\|community\\|company\\|computer\\|" + "construction\\|contractors\\|cooking\\|cool\\|country\\|creditcard\\|" + "cruises\\|dance\\|dating\\|democrat\\|dental\\|desi\\|design\\|" + "diamonds\\|directory\\|discount\\|domains\\|education\\|email\\|" + "engineering\\|enterprises\\|equipment\\|estate\\|eus\\|events\\|" + "exchange\\|expert\\|exposed\\|fail\\|farm\\|feedback\\|finance\\|" + "financial\\|fish\\|fishing\\|fitness\\|flights\\|florist\\|foo\\|" + "foundation\\|frogans\\|fund\\|furniture\\|futbol\\|gal\\|" + "gallery\\|gift\\|glass\\|globo\\|gmo\\|gop\\|graphics\\|gratis\\|" + "gripe\\|guide\\|guitars\\|guru\\|hamburg\\|haus\\|hiphop\\|" + "holdings\\|holiday\\|homes\\|horse\\|house\\|immobilien\\|" + "industries\\|info\\|ink\\|institute\\|insure\\|international\\|" + "investments\\|jetzt\\|juegos\\|kaufen\\|kim\\|kitchen\\|kiwi\\|" + "koeln\\|kred\\|land\\|lat\\|latino\\|lease\\|life\\|lighting\\|" + "limited\\|limo\\|link\\|loans\\|london\\|luxe\\|luxury\\|" + "management\\|mango\\|marketing\\|media\\|meet\\|menu\\|miami\\|" + "moda\\|moe\\|monash\\|moscow\\|motorcycles\\|nagoya\\|name\\|" + "net\\|neustar\\|ninja\\|nyc\\|okinawa\\|onl\\|org\\|paris\\|" + "partners\\|parts\\|photo\\|photography\\|photos\\|pics\\|" + "pictures\\|pink\\|plumbing\\|pro\\|productions\\|properties\\|" + "pub\\|qpon\\|quebec\\|recipes\\|red\\|reisen\\|ren\\|rentals\\|" + "repair\\|report\\|rest\\|reviews\\|rich\\|rocks\\|rodeo\\|" + "ruhr\\|ryukyu\\|saarland\\|schule\\|scot\\|services\\|sexy\\|" + "shiksha\\|shoes\\|singles\\|social\\|sohu\\|solar\\|solutions\\|" + "soy\\|supplies\\|supply\\|support\\|surgery\\|systems\\|tattoo\\|" + "tax\\|technology\\|tienda\\|tips\\|today\\|tokyo\\|tools\\|" + "town\\|toys\\|trade\\|training\\|university\\|uno\\|vacations\\|" + "vegas\\|ventures\\|viajes\\|villas\\|vision\\|vodka\\|vote\\|" + "voting\\|voto\\|voyage\\|wang\\|watch\\|webcam\\|wed\\|wien\\|" + "wiki\\|works\\|wtc\\|wtf\\|xyz\\|yachts\\|yokohama\\|you\\|" + "zone\\)") ;; http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains ;; http://en.wikipedia.org/wiki/GTLD ;; `approved, but not yet in operation': .xxx @@ -2249,7 +2306,7 @@ Leading \"Re: \" is not stripped by this function. Use the function ((not (string-match (concat "^[ \t]*" (regexp-quote new-subject) - " \t]*$") + "[ \t]*$") old-subject)) ; yes, it really is a new subject ;; delete eventual Re: prefix (setq old-subject @@ -2451,6 +2508,7 @@ With prefix-argument just set Follow-Up, don't cross-post." "Remove HEADER in the narrowed buffer. If IS-REGEXP, HEADER is a regular expression. If FIRST, only remove the first instance of the header. +If REVERSE, remove headers that doesn't match HEADER. Return the number of headers removed." (goto-char (point-min)) (let ((regexp (if is-regexp header (concat "^" (regexp-quote header) ":"))) @@ -3515,15 +3573,16 @@ Message buffers and is not meant to be called directly." (goto-char (point-max)) ;; Insert the signature. (unless (bolp) - (insert "\n")) + (newline)) (when message-signature-insert-empty-line - (insert "\n")) - (insert "-- \n") + (newline)) + (insert "-- ") + (newline) (if (eq signature t) (insert-file-contents signature-file) (insert signature)) (goto-char (point-max)) - (or (bolp) (insert "\n"))))) + (or (bolp) (newline))))) (defun message-insert-importance-high () "Insert header to mark message as important." @@ -3907,9 +3966,13 @@ This function uses `mail-citation-hook' if that is non-nil." (defvar gnus-extract-address-components) (autoload 'format-spec "format-spec") +(autoload 'gnus-date-get-time "gnus-util") -(defun message-insert-formatted-citation-line (&optional from date) +(defun message-insert-formatted-citation-line (&optional from date tz) "Function that inserts a formatted citation line. +The optional FROM, and DATE are strings containing the contents of +the From header and the Date header respectively. The optional TZ +is a number of seconds, overrides the time zone of DATE. See `message-citation-line-format'." ;; The optional args are for testing/debugging. They will disappear later. @@ -3917,7 +3980,7 @@ See `message-citation-line-format'." ;; (with-temp-buffer ;; (message-insert-formatted-citation-line ;; "John Doe <john.doe@example.invalid>" - ;; (current-time)) + ;; (message-make-date)) ;; (buffer-string)) (when (or message-reply-headers (and from date)) (unless from @@ -3934,28 +3997,43 @@ See `message-citation-line-format'." (net (car (cdr data))) (name-or-net (or (car data) (car (cdr data)) from)) - (replydate - (or - date - ;; We need Gnus functionality if the user wants date or time from - ;; the original article: - (when (string-match "%[^fnNFL]" message-citation-line-format) - (autoload 'gnus-date-get-time "gnus-util") - (gnus-date-get-time (mail-header-date message-reply-headers))))) + (time + (when (string-match "%[^fnNFL]" message-citation-line-format) + (cond ((numberp (car-safe date)) date) ;; backward compatibility + (date (gnus-date-get-time date)) + (t + (gnus-date-get-time + (setq date (mail-header-date message-reply-headers))))))) + (tz (or tz + (when (stringp date) + (nth 8 (parse-time-string date))))) (flist (let ((i ?A) lst) (when (stringp name) ;; Guess first name and last name: - (let* ((names (delq nil (mapcar (lambda (x) - (if (string-match "\\`\\(\\w\\|[-.]\\)+\\'" x) x nil)) - (split-string name "[ \t]+")))) - (count (length names))) - (cond ((= count 1) (setq fname (car names) - lname "")) - ((or (= count 2) (= count 3)) (setq fname (car names) - lname (mapconcat 'identity (cdr names) " "))) - ((> count 3) (setq fname (mapconcat 'identity (butlast names (- count 2)) " ") - lname (mapconcat 'identity (nthcdr 2 names) " "))) ) + (let* ((names (delq + nil + (mapcar + (lambda (x) + (if (string-match "\\`\\(\\w\\|[-.]\\)+\\'" + x) + x + nil)) + (split-string name "[ \t]+")))) + (count (length names))) + (cond ((= count 1) + (setq fname (car names) + lname "")) + ((or (= count 2) (= count 3)) + (setq fname (car names) + lname (mapconcat 'identity (cdr names) " "))) + ((> count 3) + (setq fname (mapconcat 'identity + (butlast names (- count 2)) + " ") + lname (mapconcat 'identity + (nthcdr 2 names) + " ")))) (when (string-match "\\(.*\\),\\'" fname) (let ((newlname (match-string 1 fname))) (setq fname lname lname newlname))))) @@ -3985,7 +4063,7 @@ See `message-citation-line-format'." (>= i ?a))) (push i lst) (push (condition-case nil - (format-time-string (format "%%%c" i) replydate) + (gmm-format-time-string (format "%%%c" i) time tz) (error (format ">%c<" i))) lst)) (setq i (1+ i))) @@ -5514,7 +5592,7 @@ If NOW, use that time instead." "Make date string for the Expires header. Expiry in DAYS days. In posting styles use `(\"Expires\" (make-expires-date 30))'." - (let* ((cur (decode-time (current-time))) + (let* ((cur (decode-time)) (nday (+ days (nth 3 cur)))) (setf (nth 3 cur) nday) (message-make-date (apply 'encode-time cur)))) @@ -5771,7 +5849,7 @@ give as trustworthy answer as possible." (defun message-make-fqdn () "Return user's fully qualified domain name." - (let* ((system-name (system-name)) + (let* ((sysname (system-name)) (user-mail (message-user-mail-address)) (user-domain (if (and user-mail @@ -5785,10 +5863,10 @@ give as trustworthy answer as possible." (not (string-match message-bogus-system-names message-user-fqdn))) ;; `message-user-fqdn' seems to be valid message-user-fqdn) - ((and (string-match message-valid-fqdn-regexp system-name) - (not (string-match message-bogus-system-names system-name))) + ((and (string-match message-valid-fqdn-regexp sysname) + (not (string-match message-bogus-system-names sysname))) ;; `system-name' returned the right result. - system-name) + sysname) ;; Try `mail-host-address'. ((and (boundp 'mail-host-address) (stringp mail-host-address) @@ -5803,7 +5881,7 @@ give as trustworthy answer as possible." user-domain) ;; Default to this bogus thing. (t - (concat system-name + (concat sysname ".i-did-not-set--mail-host-address--so-tickle-me"))))) (defun message-make-domain () @@ -7374,17 +7452,25 @@ Optional DIGEST will use digest to forward." (message-remove-ignored-headers b e))) (defun message-remove-ignored-headers (b e) - (when message-forward-ignored-headers + (when (or message-forward-ignored-headers + message-forward-included-headers) (save-restriction (narrow-to-region b e) (goto-char b) (narrow-to-region (point) (or (search-forward "\n\n" nil t) (point))) - (let ((ignored (if (stringp message-forward-ignored-headers) - (list message-forward-ignored-headers) - message-forward-ignored-headers))) - (dolist (elem ignored) - (message-remove-header elem t)))))) + (when message-forward-ignored-headers + (let ((ignored (if (stringp message-forward-ignored-headers) + (list message-forward-ignored-headers) + message-forward-ignored-headers))) + (dolist (elem ignored) + (message-remove-header elem t)))) + (when message-forward-included-headers + (message-remove-header + (if (listp message-forward-included-headers) + (regexp-opt message-forward-included-headers) + message-forward-included-headers) + t nil t))))) (defun message-forward-make-body-mime (forward-buffer &optional beg end) (let ((b (point))) @@ -7432,8 +7518,7 @@ Optional DIGEST will use digest to forward." (goto-char (point-max)))) (setq e (point)) (insert "<#/mml>\n") - (when (and (not message-forward-decoded-p) - message-forward-ignored-headers) + (when (not message-forward-decoded-p) (message-remove-ignored-headers b e)))) (defun message-forward-make-body-digest-plain (forward-buffer) @@ -8421,6 +8506,17 @@ Used in `message-simplify-recipients'." (message-fetch-field hdr) t)) ", ")))) +;;; multipart/related and HTML support. + +(defun message-make-html-message-with-image-files (files) + (interactive (list (dired-get-marked-files nil current-prefix-arg))) + (message-mail) + (message-goto-body) + (insert "<#part type=text/html>\n\n") + (dolist (file files) + (insert (format "<img src=%S>\n\n" file))) + (message-goto-to)) + (when (featurep 'xemacs) (require 'messagexmas) (message-xmas-redefine)) diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el index a6ec26e6ccb..4a25c1486a8 100644 --- a/lisp/gnus/mm-bodies.el +++ b/lisp/gnus/mm-bodies.el @@ -23,10 +23,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (require 'mm-util) (require 'rfc2047) (require 'mm-encode) diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index a4fa56bc03d..f03b9c9b484 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -23,10 +23,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (require 'mail-parse) (require 'mm-bodies) (eval-when-compile (require 'cl)) @@ -124,7 +120,6 @@ ((executable-find "w3m") 'gnus-w3m) ((executable-find "links") 'links) ((executable-find "lynx") 'lynx) - ((locate-library "w3") 'w3) ((locate-library "html2text") 'html2text) (t nil)) "Render of HTML contents. @@ -136,13 +131,11 @@ The defined renderer types are: `w3m-standalone': use plain w3m; `links': use links; `lynx': use lynx; -`w3': use Emacs/W3; `html2text': use html2text; nil : use external viewer (default web browser)." :version "24.1" :type '(choice (const shr) (const gnus-w3m) - (const w3) (const w3m :tag "emacs-w3m") (const w3m-standalone :tag "standalone w3m" ) (const links) @@ -153,9 +146,9 @@ nil : use external viewer (default web browser)." :group 'mime-display) (defcustom mm-inline-text-html-with-images nil - "If non-nil, Gnus will allow retrieving images in HTML contents with -the <img> tags. It has no effect on Emacs/w3. See also the -documentation for the `mm-w3m-safe-url-regexp' variable." + "If non-nil, Gnus will allow retrieving images in HTML that has <img> tags. +See also the documentation for the `mm-w3m-safe-url-regexp' +variable." :version "22.1" :type 'boolean :group 'mime-display) @@ -654,7 +647,7 @@ MIME-Version header before proceeding." (unless from (setq from (mail-fetch-field "from"))) ;; FIXME: In some circumstances, this code is running within - ;; an unibyte macro. mail-extract-address-components + ;; a unibyte macro. mail-extract-address-components ;; creates unibyte buffers. This `if', though not a perfect ;; solution, avoids most of them. (if from @@ -828,7 +821,6 @@ external if displayed external." 'inline) ((and (mm-inlinable-p ehandle) (mm-inlined-p ehandle)) - (forward-line 1) (mm-display-inline handle) 'inline) ((or method @@ -841,18 +833,18 @@ external if displayed external." 'inline) (setq external (and method ;; If nil, we always use "save". - (stringp method) ;; 'mailcap-save-binary-file (or (eq mm-enable-external t) (and (eq mm-enable-external 'ask) (y-or-n-p (concat "Display part (" type - ") using external program" - ;; Can non-string method ever happen? + ") " (if (stringp method) (concat - " \"" (format method filename) "\"") - "") + "using external program \"" + (format method filename) "\"") + (format + "by calling `%s' on the contents)" method)) "? ")))))) (if external (mm-display-external @@ -893,7 +885,15 @@ external if displayed external." (mm-handle-media-type handle) t)))) (unwind-protect (if method - (funcall method) + (progn + (when (and (boundp 'gnus-summary-buffer) + (bufferp gnus-summary-buffer) + (buffer-name gnus-summary-buffer)) + ;; So that we pop back to the right place, sortof. + (switch-to-buffer gnus-summary-buffer) + (switch-to-buffer mm)) + (delete-other-windows) + (funcall method)) (mm-save-part handle)) (when (and (not non-viewer) method) @@ -1822,6 +1822,7 @@ If RECURSIVE, search recursively." ;; Require since we bind its variables. (require 'shr) (let ((article-buffer (current-buffer)) + (shr-width fill-column) (shr-content-function (lambda (id) (let ((handle (mm-get-content-id id))) (when handle @@ -1875,7 +1876,7 @@ If RECURSIVE, search recursively." handle `(lambda () (let ((inhibit-read-only t)) - (delete-region ,(point-min-marker) + (delete-region ,(copy-marker (point-min) t) ,(point-max-marker)))))))) (defvar shr-map) diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el index 2fb75725799..1ddcf0df556 100644 --- a/lisp/gnus/mm-extern.el +++ b/lisp/gnus/mm-extern.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'mm-util) diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el index b2cbf1a3fa2..6d5f2a34c79 100644 --- a/lisp/gnus/mm-url.el +++ b/lisp/gnus/mm-url.el @@ -21,7 +21,7 @@ ;;; Commentary: -;; Some codes are stolen from w3 and url packages. Some are moved from +;; Some code is stolen from w3 and url packages. Some are moved from ;; nnweb. ;; TODO: Support POST, cookie. @@ -264,8 +264,6 @@ This is taken from RFC 2396.") (require 'url-parse) (require 'url-vars)) (error nil)) - ;; w3-4.0pre0.46 or earlier version. - (require 'w3-vars) (require 'url))) ;;;###autoload @@ -416,13 +414,51 @@ spaces. Die Die Die." (autoload 'mml-compute-boundary "mml") +(defun mm-url-encode-multipart-form-data (pairs &optional boundary) + "Return PAIRS encoded in multipart/form-data." + ;; RFC1867 + ;; Get a good boundary + (unless boundary + (setq boundary (mml-compute-boundary '()))) + (concat + ;; Start with the boundary + "--" boundary "\r\n" + ;; Create name value pairs + (mapconcat + 'identity + ;; Delete any returned items that are empty + (delq nil + (mapcar (lambda (data) + (cond ((equal (car data) "file") + ;; For each pair + (format + ;; Encode the name + "Content-Disposition: form-data; name=%S; filename=%S\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: binary\r\n\r\n%s" + (cdr (assoc "name" (cdr data))) (cdr (assoc "filename" (cdr data))) + (cond ((stringp (cdr (assoc "filedata" (cdr data)))) + (cdr (assoc "filedata" (cdr data)))) + ((integerp (cdr (assoc "filedata" (cdr data)))) + (number-to-string (cdr (assoc "filedata" (cdr data)))))))) + ((equal (car data) "submit") + "Content-Disposition: form-data; name=\"submit\"\r\n\r\nSubmit\r\n") + (t + (format + "Content-Disposition: form-data;name=%S\r\n\r\n%s\r\n" + (car data) (concat (mm-url-form-encode-xwfu (cdr data))) + )))) + pairs)) + ;; use the boundary as a separator + (concat "\r\n--" boundary "\r\n")) + ;; put a boundary at the end. + "--" boundary "--\r\n")) + (defun mm-url-remove-markup () "Remove all HTML markup, leaving just plain text." (goto-char (point-min)) (while (search-forward "<!--" nil t) (delete-region (match-beginning 0) - (or (search-forward "-->" nil t) - (point-max)))) + (or (search-forward "-->" nil t) + (point-max)))) (goto-char (point-min)) (while (re-search-forward "<[^>]+>" nil t) (replace-match "" t t))) diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index c0aeec40488..b2e0ee66d9c 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el @@ -23,10 +23,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'mail-prsvr) @@ -1247,6 +1243,7 @@ evaluating FORMS but it is no longer done. So, some programs assuming it if any may malfunction." (if (featurep 'xemacs) `(progn ,@forms) + (message "Warning: Using brain-dead macro `mm-with-unibyte-current-buffer'!") (let ((multibyte (make-symbol "multibyte"))) `(let ((,multibyte enable-multibyte-characters)) (when ,multibyte @@ -1257,6 +1254,7 @@ it if any may malfunction." (set-buffer-multibyte t))))))) (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) +(make-obsolete 'mm-with-unibyte-current-buffer nil "25.1") (defun mm-find-charset-region (b e) "Return a list of Emacs charsets in the region B to E." diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index a38504af36c..fa48ee97bcd 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el @@ -673,22 +673,34 @@ value of `mm-uu-text-plain-type'." (goto-char text-start) (re-search-forward "." start-point t))) (push - (mm-make-handle (mm-uu-copy-to-buffer text-start start-point) - mm-uu-text-plain-type) + (mm-make-handle + (mm-uu-copy-to-buffer + text-start + ;; A start-separator is likely accompanied by + ;; a leading newline. + (if (and (eq (char-before start-point) ?\n) + (eq (char-before (1- start-point)) ?\n)) + (1- start-point) + start-point)) + mm-uu-text-plain-type) result)) (push (funcall (mm-uu-function-extract entry)) result) (goto-char (setq text-start end-point)))) (when result - (if (and (> (point-max) (1+ text-start)) - (save-excursion - (goto-char text-start) - (re-search-forward "." nil t))) - (push - (mm-make-handle (mm-uu-copy-to-buffer text-start (point-max)) - mm-uu-text-plain-type) - result)) + (goto-char text-start) + (when (re-search-forward "." nil t) + (push (mm-make-handle + (mm-uu-copy-to-buffer + ;; An end-separator is likely accompanied by + ;; a trailing newline. + (if (eq (char-after text-start) ?\n) + (1+ text-start) + text-start) + (point-max)) + mm-uu-text-plain-type) + result)) (setq result (cons "multipart/mixed" (nreverse result)))) result))) diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index d7fe57b1a41..4b520edf1e2 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el @@ -22,9 +22,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (eval-when-compile (require 'cl)) (require 'mail-parse) (require 'mailcap) @@ -51,7 +48,6 @@ (defvar mm-text-html-renderer-alist '((shr . mm-shr) - (w3 . mm-inline-text-html-render-with-w3) (w3m . mm-inline-text-html-render-with-w3m) (w3m-standalone . mm-inline-text-html-render-with-w3m-standalone) (gnus-w3m . gnus-article-html) @@ -100,19 +96,19 @@ (- (nth 3 edges) (nth 1 edges))))))) image)) b) - (insert "\n\n") + (insert "\n") (mm-handle-set-undisplayer handle `(lambda () (let ((b ,b) (inhibit-read-only t)) (remove-images b b) - (delete-region b (+ b 2))))))) + (delete-region b (1+ b))))))) (defun mm-inline-image-xemacs (handle) (when (featurep 'xemacs) - (insert "\n\n") - (forward-char -2) + (insert "\n") + (forward-char -1) (let ((annot (make-annotation (mm-get-image handle) nil 'text)) (inhibit-read-only t)) (mm-handle-set-undisplayer @@ -121,7 +117,7 @@ (let ((b ,(point-marker)) (inhibit-read-only t)) (delete-annotation ,annot) - (delete-region (- b 2) b)))) + (delete-region (1- b) b)))) (set-extent-property annot 'mm t) (set-extent-property annot 'duplicable t)))) @@ -130,91 +126,6 @@ (defalias 'mm-inline-image 'mm-inline-image-xemacs) (defalias 'mm-inline-image 'mm-inline-image-emacs))) -;; External. -(declare-function w3-do-setup "ext:w3" ()) -(declare-function w3-region "ext:w3-display" (st nd)) -(declare-function w3-prepare-buffer "ext:w3-display" (&rest args)) - -(defvar mm-w3-setup nil) -(defun mm-setup-w3 () - (unless mm-w3-setup - (require 'w3) - (w3-do-setup) - (require 'url) - (require 'w3-vars) - (require 'url-vars) - (setq mm-w3-setup t))) - -(defun mm-inline-text-html-render-with-w3 (handle) - (mm-setup-w3) - (let ((text (mm-get-part handle)) - (b (point)) - (url-standalone-mode t) - (url-gateway-unplugged t) - (w3-honor-stylesheets nil) - (url-current-object - (url-generic-parse-url (format "cid:%s" (mm-handle-id handle)))) - (width (window-width)) - (charset (mail-content-type-get - (mm-handle-type handle) 'charset))) - (save-excursion - (insert (if charset (mm-decode-string text charset) text)) - (save-restriction - (narrow-to-region b (point)) - (unless charset - (goto-char (point-min)) - (when (or (and (boundp 'w3-meta-content-type-charset-regexp) - (re-search-forward - w3-meta-content-type-charset-regexp nil t)) - (and (boundp 'w3-meta-charset-content-type-regexp) - (re-search-forward - w3-meta-charset-content-type-regexp nil t))) - (setq charset - (let ((bsubstr (buffer-substring-no-properties - (match-beginning 2) - (match-end 2)))) - (if (fboundp 'w3-coding-system-for-mime-charset) - (w3-coding-system-for-mime-charset bsubstr) - (mm-charset-to-coding-system bsubstr nil t)))) - (delete-region (point-min) (point-max)) - (insert (mm-decode-string text charset)))) - (save-window-excursion - (save-restriction - (let ((w3-strict-width width) - ;; Don't let w3 set the global version of - ;; this variable. - (fill-column fill-column)) - (if (or debug-on-error debug-on-quit) - (w3-region (point-min) (point-max)) - (condition-case () - (w3-region (point-min) (point-max)) - (error - (delete-region (point-min) (point-max)) - (let ((b (point)) - (charset (mail-content-type-get - (mm-handle-type handle) 'charset))) - (if (or (eq charset 'gnus-decoded) - (eq mail-parse-charset 'gnus-decoded)) - (save-restriction - (narrow-to-region (point) (point)) - (mm-insert-part handle) - (goto-char (point-max))) - (insert (mm-decode-string (mm-get-part handle) - charset)))) - (message - "Error while rendering html; showing as text/plain"))))))) - (mm-handle-set-undisplayer - handle - `(lambda () - (let ((inhibit-read-only t)) - ,@(if (functionp 'remove-specifier) - '((dolist (prop '(background background-pixmap foreground)) - (remove-specifier - (face-property 'default prop) - (current-buffer))))) - (delete-region ,(point-min-marker) - ,(point-max-marker))))))))) - (defvar mm-w3m-setup nil "Whether gnus-article-mode has been setup to use emacs-w3m.") @@ -306,7 +217,7 @@ handle `(lambda () (let ((inhibit-read-only t)) - (delete-region ,(point-min-marker) + (delete-region ,(copy-marker (point-min) t) ,(point-max-marker))))))))) (defvar mm-w3m-standalone-supports-m17n-p (if (featurep 'mule) 'undecided) @@ -480,7 +391,7 @@ handle `(lambda () (let ((inhibit-read-only t)) - (delete-region ,(point-min-marker) + (delete-region ,(copy-marker (point-min) t) ,(point-max-marker)))))))) (defun mm-insert-inline (handle text) @@ -493,19 +404,12 @@ handle `(lambda () (let ((inhibit-read-only t)) - (delete-region ,(copy-marker b) - ,(copy-marker (point)))))))) + (delete-region ,(copy-marker b t) + ,(point-marker))))))) (defun mm-inline-audio (handle) (message "Not implemented")) -(defun mm-w3-prepare-buffer () - (require 'w3) - (let ((url-standalone-mode t) - (url-gateway-unplugged t) - (w3-honor-stylesheets nil)) - (w3-prepare-buffer))) - (defun mm-view-message () (mm-enable-multibyte) (let (handles) @@ -609,16 +513,20 @@ If MODE is not set, try to find mode automatically." (set (make-local-variable 'enable-local-variables) nil) (with-demoted-errors (if mode - (funcall mode) + (save-window-excursion + (switch-to-buffer (current-buffer)) + (funcall mode)) (let ((auto-mode-alist (delq (rassq 'doc-view-mode-maybe auto-mode-alist) (copy-sequence auto-mode-alist)))) (set-auto-mode))) ;; The mode function might have already turned on font-lock. ;; Do not fontify if the guess mode is fundamental. - (unless (or (symbol-value 'font-lock-mode) + (unless (or font-lock-mode (eq major-mode 'fundamental-mode)) - (font-lock-fontify-buffer)))) + (if (fboundp 'font-lock-ensure) + (font-lock-ensure) + (font-lock-fontify-buffer))))) ;; By default, XEmacs font-lock uses non-duplicable text ;; properties. This code forces all the text properties ;; to be copied along with the text. diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el index abc5601a2bc..58d3b4680b9 100644 --- a/lisp/gnus/mml-smime.el +++ b/lisp/gnus/mml-smime.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'smime) diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index 26d67cef6e3..2a3b228097a 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el @@ -22,16 +22,13 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (require 'mm-util) (require 'mm-bodies) (require 'mm-encode) (require 'mm-decode) (require 'mml-sec) (eval-when-compile (require 'cl)) +(eval-when-compile (require 'url)) (eval-when-compile (when (featurep 'xemacs) (require 'easy-mmode))) ; for `define-minor-mode' @@ -465,6 +462,9 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (defvar mml-multipart-number 0) (defvar mml-inhibit-compute-boundary nil) +(declare-function libxml-parse-html-region "xml.c" + (start end &optional base-url)) + (defun mml-generate-mime (&optional multipart-type) "Generate a MIME message based on the current MML document. MULTIPART-TYPE defaults to \"mixed\", but can also @@ -474,19 +474,69 @@ be \"related\" or \"alternate\"." (options message-options)) (if (not cont) nil + (when (and (consp (car cont)) + (= (length cont) 1) + (fboundp 'libxml-parse-html-region) + (equal (cdr (assq 'type (car cont))) "text/html")) + (setq cont (mml-expand-html-into-multipart-related (car cont)))) (prog1 (mm-with-multibyte-buffer (setq message-options options) - (if (and (consp (car cont)) - (= (length cont) 1)) - (mml-generate-mime-1 (car cont)) + (cond + ((and (consp (car cont)) + (= (length cont) 1)) + (mml-generate-mime-1 (car cont))) + ((eq (car cont) 'multipart) + (mml-generate-mime-1 cont)) + (t (mml-generate-mime-1 (nconc (list 'multipart (cons 'type (or multipart-type "mixed"))) - cont))) + cont)))) (setq options message-options) (buffer-string)) (setq message-options options))))) +(defun mml-expand-html-into-multipart-related (cont) + (let ((new-parts nil) + (cid 1)) + (mm-with-multibyte-buffer + (insert (cdr (assq 'contents cont))) + (goto-char (point-min)) + (with-syntax-table mml-syntax-table + (while (re-search-forward "<img\\b" nil t) + (goto-char (match-beginning 0)) + (let* ((start (point)) + (img (nth 2 + (nth 2 + (libxml-parse-html-region + (point) (progn (forward-sexp) (point)))))) + (end (point)) + (parsed (url-generic-parse-url (cdr (assq 'src (cadr img)))))) + (when (and (null (url-type parsed)) + (url-filename parsed) + (file-exists-p (url-filename parsed))) + (goto-char start) + (when (search-forward (url-filename parsed) end t) + (let ((cid (format "fsf.%d" cid))) + (replace-match (concat "cid:" cid) t t) + (push (list cid (url-filename parsed)) new-parts)) + (setq cid (1+ cid))))))) + ;; We have local images that we want to include. + (if (not new-parts) + (list cont) + (setcdr (assq 'contents cont) (buffer-string)) + (setq cont + (nconc (list 'multipart (cons 'type "related")) + (list cont))) + (dolist (new-part (nreverse new-parts)) + (setq cont + (nconc cont + (list `(part (type . "image/png") + (filename . ,(nth 1 new-part)) + (id . ,(concat "<" (nth 0 new-part) + ">"))))))) + cont)))) + (defun mml-generate-mime-1 (cont) (let ((mm-use-ultra-safe-encoding (or mm-use-ultra-safe-encoding (assq 'sign cont)))) diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el index a731df803fa..47d4407f689 100644 --- a/lisp/gnus/mml1991.el +++ b/lisp/gnus/mml1991.el @@ -26,9 +26,6 @@ ;;; Code: (eval-and-compile - ;; For Emacs <22.2 and XEmacs. - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))) - (if (locate-library "password-cache") (require 'password-cache) (require 'password))) diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el index a5438f7b1c7..5104cea5abb 100644 --- a/lisp/gnus/mml2015.el +++ b/lisp/gnus/mml2015.el @@ -28,9 +28,6 @@ ;;; Code: (eval-and-compile - ;; For Emacs <22.2 and XEmacs. - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))) - (if (locate-library "password-cache") (require 'password-cache) (require 'password))) @@ -51,12 +48,10 @@ ;; Then mml1991 would not need to require mml2015, and mml1991-use ;; could be removed. (defvar mml2015-use (or - (condition-case nil - (progn - (require 'epg-config) - (epg-check-configuration (epg-configuration)) - 'epg) - (error)) + (progn + (ignore-errors (require 'epg-config)) + (and (fboundp 'epg-check-configuration) + 'epg)) (progn (let ((abs-file (locate-library "pgg"))) ;; Don't load PGG if it is marked as obsolete diff --git a/lisp/gnus/nndraft.el b/lisp/gnus/nndraft.el index cfae4df7867..0af547dfa1b 100644 --- a/lisp/gnus/nndraft.el +++ b/lisp/gnus/nndraft.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (require 'nnheader) (require 'nnmail) (require 'gnus-start) diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el index b716d3276be..2901d294242 100644 --- a/lisp/gnus/nnfolder.el +++ b/lisp/gnus/nnfolder.el @@ -28,10 +28,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (require 'nnheader) (require 'message) (require 'nnmail) diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el index d237e02965f..2ce5cb8af5f 100644 --- a/lisp/gnus/nnheader.el +++ b/lisp/gnus/nnheader.el @@ -26,9 +26,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (eval-when-compile (require 'cl)) (defvar nnmail-extra-headers) diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 8ed5143b243..8e81abcf9c0 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -26,10 +26,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-and-compile (require 'nnheader) ;; In Emacs 24, `open-protocol-stream' is an autoloaded alias for @@ -170,14 +166,21 @@ textual parts.") (nnimap-find-process-buffer nntp-server-buffer)) (defun nnimap-header-parameters () - (format "(UID RFC822.SIZE BODYSTRUCTURE %s)" - (format + (let (params) + (push "UID" params) + (push "RFC822.SIZE" params) + (when (nnimap-capability "X-GM-EXT-1") + (push "X-GM-LABELS" params)) + (push "BODYSTRUCTURE" params) + (push (format (if (nnimap-ver4-p) "BODY.PEEK[HEADER.FIELDS %s]" "RFC822.HEADER.LINES %s") (append '(Subject From Date Message-Id References In-Reply-To Xref) - nnmail-extra-headers)))) + nnmail-extra-headers)) + params) + (format "%s" (nreverse params)))) (deffoo nnimap-retrieve-headers (articles &optional group server fetch-old) (when group @@ -201,7 +204,7 @@ textual parts.") (defun nnimap-transform-headers () (goto-char (point-min)) - (let (article lines size string) + (let (article lines size string labels) (block nil (while (not (eobp)) (while (not (looking-at "\\* [0-9]+ FETCH")) @@ -236,6 +239,9 @@ textual parts.") t) (match-string 1))) (beginning-of-line) + (when (search-forward "X-GM-LABELS" (line-end-position) t) + (setq labels (ignore-errors (read (current-buffer))))) + (beginning-of-line) (when (search-forward "BODYSTRUCTURE" (line-end-position) t) (let ((structure (ignore-errors (read (current-buffer))))) @@ -255,6 +261,8 @@ textual parts.") (insert (format "Chars: %s\n" size))) (when lines (insert (format "Lines: %s\n" lines))) + (when labels + (insert (format "X-GM-LABELS: %s\n" labels))) ;; Most servers have a blank line after the headers, but ;; Davmail doesn't. (unless (re-search-forward "^\r$\\|^)\r?$" nil t) @@ -409,6 +417,7 @@ textual parts.") "*nnimap*" (current-buffer) nnimap-address (nnimap-map-port (car ports)) :type nnimap-stream + :warn-unless-encrypted t :return-list t :shell-command nnimap-shell-program :capability-command "1 CAPABILITY\r\n" @@ -628,6 +637,26 @@ textual parts.") (nnheader-ms-strip-cr) (cons group article))))))) +(deffoo nnimap-request-articles (articles &optional group server) + (when group + (setq group (nnimap-decode-gnus-group group))) + (with-current-buffer nntp-server-buffer + (let ((result (nnimap-change-group group server))) + (when result + (erase-buffer) + (with-current-buffer (nnimap-buffer) + (erase-buffer) + (when (nnimap-command + (if (nnimap-ver4-p) + "UID FETCH %s BODY.PEEK[]" + "UID FETCH %s RFC822.PEEK") + (nnimap-article-ranges (gnus-compress-sequence articles))) + (let ((buffer (current-buffer))) + (with-current-buffer nntp-server-buffer + (nnheader-insert-buffer-substring buffer) + (nnheader-ms-strip-cr))) + t)))))) + (defun nnimap-get-whole-article (article &optional command) (let ((result (nnimap-command @@ -775,43 +804,55 @@ textual parts.") articles active marks high low) (with-current-buffer nntp-server-buffer (when result - (if (and dont-check - (setq active (nth 2 (assoc group nnimap-current-infos)))) - (insert (format "211 %d %d %d %S\n" - (- (cdr active) (car active)) - (car active) - (cdr active) - group)) - (with-current-buffer (nnimap-buffer) - (erase-buffer) - (let ((group-sequence - (nnimap-send-command "SELECT %S" (utf7-encode group t))) - (flag-sequence - (nnimap-send-command "UID FETCH 1:* FLAGS"))) - (setf (nnimap-group nnimap-object) group) - (nnimap-wait-for-response flag-sequence) - (setq marks - (nnimap-flags-to-marks - (nnimap-parse-flags - (list (list group-sequence flag-sequence - 1 group "SELECT"))))) - (when (and info - marks) - (nnimap-update-infos marks (list info)) - (nnimap-store-info info (gnus-active (gnus-info-group info)))) - (goto-char (point-max)) - (let ((uidnext (nth 5 (car marks)))) - (setq high (or (if uidnext - (1- uidnext) - (nth 3 (car marks))) - 0) - low (or (nth 4 (car marks)) uidnext 1))))) - (erase-buffer) - (insert - (format - "211 %d %d %d %S\n" (1+ (- high low)) low high group))) + (when (or (not dont-check) + (not (setq active + (nth 2 (assoc group nnimap-current-infos))))) + (let ((sequences (nnimap-retrieve-group-data-early + server (list info)))) + (nnimap-finish-retrieve-group-infos server (list info) sequences + t) + (setq active (nth 2 (assoc group nnimap-current-infos))))) + (insert (format "211 %d %d %d %S\n" + (- (cdr active) (car active)) + (car active) + (cdr active) + group)) t)))) +(deffoo nnimap-request-scan-group (group &optional server info) + (setq group (nnimap-decode-gnus-group group)) + (let (marks high low) + (with-current-buffer (nnimap-buffer) + (erase-buffer) + (let ((group-sequence + (nnimap-send-command "SELECT %S" (utf7-encode group t))) + (flag-sequence + (nnimap-send-command "UID FETCH 1:* FLAGS"))) + (setf (nnimap-group nnimap-object) group) + (nnimap-wait-for-response flag-sequence) + (setq marks + (nnimap-flags-to-marks + (nnimap-parse-flags + (list (list group-sequence flag-sequence + 1 group "SELECT"))))) + (when (and info + marks) + (nnimap-update-infos marks (list info)) + (nnimap-store-info info (gnus-active (gnus-info-group info)))) + (goto-char (point-max)) + (let ((uidnext (nth 5 (car marks)))) + (setq high (or (if uidnext + (1- uidnext) + (nth 3 (car marks))) + 0) + low (or (nth 4 (car marks)) uidnext 1))))) + (with-current-buffer nntp-server-buffer + (erase-buffer) + (insert + (format + "211 %d %d %d %S\n" (1+ (- high low)) low high group)) + t))) + (deffoo nnimap-request-create-group (group &optional server args) (setq group (nnimap-decode-gnus-group group)) (when (nnimap-change-group nil server) @@ -970,10 +1011,10 @@ textual parts.") (setq target nil)) (nnheader-message 7 "Expiring article %s:%d" group article)) (when target - (push article deleted-articles)))))))) + (push article deleted-articles)))))) + (setq deleted-articles (nreverse deleted-articles)))) ;; Change back to the current group again. (nnimap-change-group group server) - (setq deleted-articles (nreverse deleted-articles)) (nnimap-delete-article (gnus-compress-sequence deleted-articles)) deleted-articles)) @@ -1105,8 +1146,11 @@ If LIMIT, first try to limit the search to the N last articles." (setq group (caar (nnmail-article-group + ;; We don't really care about the article number, because + ;; that's determined by the IMAP server later. So just + ;; return the group name. `(lambda (group) - (nnml-active-number group ,server)))))) + (list (list group))))))) (setq group (nnimap-decode-gnus-group group)) (when (nnimap-change-group nil server) (nnmail-check-syntax) @@ -1354,7 +1398,8 @@ If LIMIT, first try to limit the search to the N last articles." command (nth 2 quirk)))) -(deffoo nnimap-finish-retrieve-group-infos (server infos sequences) +(deffoo nnimap-finish-retrieve-group-infos (server infos sequences + &optional dont-insert) (when (and sequences (nnimap-change-group nil server t) ;; Check that the process is still alive. @@ -1374,19 +1419,20 @@ If LIMIT, first try to limit the search to the N last articles." (nnimap-parse-flags (nreverse sequences))) infos) - ;; Finally, just return something resembling an active file in - ;; the nntp buffer, so that the agent can save the info, too. - (with-current-buffer nntp-server-buffer - (erase-buffer) - (dolist (info infos) - (let* ((group (gnus-info-group info)) - (active (gnus-active group))) - (when active - (insert (format "%S %d %d y\n" - (decode-coding-string - (gnus-group-real-name group) 'utf-8) - (cdr active) - (car active))))))))))) + (unless dont-insert + ;; Finally, just return something resembling an active file in + ;; the nntp buffer, so that the agent can save the info, too. + (with-current-buffer nntp-server-buffer + (erase-buffer) + (dolist (info infos) + (let* ((group (gnus-info-group info)) + (active (gnus-active group))) + (when active + (insert (format "%S %d %d y\n" + (decode-coding-string + (gnus-group-real-name group) 'utf-8) + (cdr active) + (car active)))))))))))) (defun nnimap-update-infos (flags infos) (dolist (info infos) diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el index 87a46071e1c..6d111e89e80 100644 --- a/lisp/gnus/nnir.el +++ b/lisp/gnus/nnir.el @@ -171,10 +171,6 @@ ;;; Setup: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (require 'nnoo) (require 'gnus-group) (require 'message) @@ -288,6 +284,8 @@ is `(valuefunc member)'." (eval-when-compile (autoload 'nnimap-buffer "nnimap") (autoload 'nnimap-command "nnimap") + (autoload 'nnimap-capability "nnimap") + (autoload 'nnimap-wait-for-line "nnimap") (autoload 'nnimap-change-group "nnimap") (autoload 'nnimap-make-thread-query "nnimap") (autoload 'gnus-registry-action "gnus-registry") @@ -972,33 +970,52 @@ details on the language and supported extensions." (catch 'found (mapcar #'(lambda (group) - (let (artlist) - (condition-case () - (when (nnimap-change-group - (gnus-group-short-name group) server) - (with-current-buffer (nnimap-buffer) - (message "Searching %s..." group) - (let ((arts 0) - (result (nnimap-command "UID SEARCH %s" - (if (string= criteria "") - qstring - (nnir-imap-make-query - criteria qstring))))) - (mapc - (lambda (artnum) - (let ((artn (string-to-number artnum))) - (when (> artn 0) - (push (vector group artn 100) - artlist) - (when (assq 'shortcut query) - (throw 'found (list artlist))) - (setq arts (1+ arts))))) - (and (car result) - (cdr (assoc "SEARCH" (cdr result))))) - (message "Searching %s... %d matches" group arts))) - (message "Searching %s...done" group)) - (quit nil)) - (nreverse artlist))) + (let (artlist) + (condition-case () + (when (nnimap-change-group + (gnus-group-short-name group) server) + (with-current-buffer (nnimap-buffer) + (message "Searching %s..." group) + (let* ((arts 0) + (literal+ (nnimap-capability "LITERAL+")) + (search (split-string + (if (string= criteria "") + qstring + (nnir-imap-make-query + criteria qstring)) + "\n")) + (coding (upcase + (replace-regexp-in-string + "-\\(unix\\|dos\\|mac\\)" "" + (symbol-name + (cdr default-process-coding-system))))) + call result) + (setq call (nnimap-send-command + "UID SEARCH CHARSET %s %s" coding (pop search))) + (while search ; Non-ascii search terms + (unless literal+ + (nnimap-wait-for-line "^\\+\\(.*\\)\n")) + (process-send-string (get-buffer-process (current-buffer)) (pop search)) + (process-send-string (get-buffer-process (current-buffer)) + (if (nnimap-newlinep nnimap-object) + "\n" + "\r\n"))) + (setq result (nnimap-get-response call)) + (mapc + (lambda (artnum) + (let ((artn (string-to-number artnum))) + (when (> artn 0) + (push (vector group artn 100) + artlist) + (when (assq 'shortcut query) + (throw 'found (list artlist))) + (setq arts (1+ arts))))) + (and (car result) + (cdr (assoc "SEARCH" (cdr result))))) + (message "Searching %s... %d matches" group arts))) + (message "Searching %s...done" group)) + (quit nil)) + (nreverse artlist))) groups)))))) (defun nnir-imap-make-query (criteria qstring) @@ -1052,25 +1069,30 @@ In future the following will be added to the language: (defun nnir-imap-expr-to-imap (criteria expr) "Convert EXPR into an IMAP search expression on CRITERIA" ;; What sort of expression is this, eh? - (cond - ;; Simple string term - ((stringp expr) - (format "%s %S" criteria expr)) - ;; Trivial term: and - ((eq expr 'and) nil) - ;; Composite term: or expression - ((eq (car-safe expr) 'or) - (format "OR %s %s" - (nnir-imap-expr-to-imap criteria (second expr)) - (nnir-imap-expr-to-imap criteria (third expr)))) - ;; Composite term: just the fax, mam - ((eq (car-safe expr) 'not) - (format "NOT (%s)" (nnir-imap-query-to-imap criteria (rest expr)))) - ;; Composite term: just expand it all. - ((and (not (null expr)) (listp expr)) - (format "(%s)" (nnir-imap-query-to-imap criteria expr))) - ;; Complex value, give up for now. - (t (error "Unhandled input: %S" expr)))) + (let ((literal+ (nnimap-capability "LITERAL+"))) + (cond + ;; Simple string term + ((stringp expr) + (format "%s %S" criteria expr)) + ;; Trivial term: and + ((eq expr 'and) nil) + ;; Composite term: or expression + ((eq (car-safe expr) 'or) + (format "OR %s %s" + (nnir-imap-expr-to-imap criteria (second expr)) + (nnir-imap-expr-to-imap criteria (third expr)))) + ;; Composite term: just the fax, mam + ((eq (car-safe expr) 'not) + (format "NOT (%s)" (nnir-imap-query-to-imap criteria (rest expr)))) + ;; Composite term: non-ascii search term + ((numberp (car-safe expr)) + (format "%s {%d%s}\n%s" criteria (car expr) + (if literal+ "+" "") (second expr))) + ;; Composite term: just expand it all. + ((and (not (null expr)) (listp expr)) + (format "(%s)" (nnir-imap-query-to-imap criteria expr))) + ;; Complex value, give up for now. + (t (error "Unhandled input: %S" expr))))) (defun nnir-imap-parse-query (string) @@ -1112,6 +1134,11 @@ that the search language can then understand and use." ((eq term 'and) 'and) ;; negated term ((eq term 'not) (list 'not (nnir-imap-next-expr))) + ;; non-ascii search string + ((and (stringp term) + (not (= (string-bytes term) + (length term)))) + (list (string-bytes term) term)) ;; generic term (t term)))) diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index 41da89b56a8..62fcc2d8bd5 100644 --- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'gnus) ; for macro gnus-kill-buffer, at least diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el index 7d33e511baa..21fa5b37aa4 100644 --- a/lisp/gnus/nnmaildir.el +++ b/lisp/gnus/nnmaildir.el @@ -59,10 +59,6 @@ ) ] -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (require 'nnheader) (require 'gnus) (require 'gnus-util) diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el index 5a01ce8c25c..96b40e5b845 100644 --- a/lisp/gnus/nnmairix.el +++ b/lisp/gnus/nnmairix.el @@ -417,7 +417,7 @@ Other back ends might or might not work.") (nnoo-define-basics nnmairix) -(gnus-declare-backend "nnmairix" 'mail 'address) +(gnus-declare-backend "nnmairix" 'mail 'address 'virtual) (deffoo nnmairix-open-server (server &optional definitions) ;; just set server variables diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el index 2d943a40351..ac9c5ffab2c 100644 --- a/lisp/gnus/nnrss.el +++ b/lisp/gnus/nnrss.el @@ -24,10 +24,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'gnus) @@ -398,8 +394,8 @@ otherwise return nil." nnrss-compatible-encoding-alist))))) (mm-coding-system-p 'utf-8))) -(declare-function w3-parse-buffer "ext:w3-parse" (&optional buff)) - +(declare-function libxml-parse-html-region "xml.c" + (start end &optional base-url)) (defun nnrss-fetch (url &optional local) "Fetch URL and put it in a the expected Lisp structure." (mm-with-unibyte-buffer @@ -426,22 +422,14 @@ otherwise return nil." (mm-enable-multibyte)))) (goto-char (point-min)) - ;; Because xml-parse-region can't deal with anything that isn't - ;; xml and w3-parse-buffer can't deal with some xml, we have to - ;; parse with xml-parse-region first and, if that fails, parse - ;; with w3-parse-buffer. Yuck. Eventually, someone should find out - ;; why w3-parse-buffer fails to parse some well-formed xml and - ;; fix it. - (condition-case err1 (setq xmlform (xml-parse-region (point-min) (point-max))) (error (condition-case err2 - (setq htmlform (caddar (w3-parse-buffer - (current-buffer)))) + (setq htmlform (libxml-parse-html-region (point-min) (point-max))) (error (message "\ -nnrss: %s: Not valid XML %s and w3-parse doesn't work %s" +nnrss: %s: Not valid XML %s and libxml-parse-html-region doesn't work %s" url err1 err2))))) (if htmlform htmlform @@ -599,7 +587,7 @@ which RSS 2.0 allows." (defun nnrss-no-cache (url) "") -(defun nnrss-insert-w3 (url) +(defun nnrss-insert (url) (mm-with-unibyte-current-buffer (condition-case err (mm-url-insert url) @@ -614,8 +602,6 @@ which RSS 2.0 allows." (mm-url-decode-entities-nbsp) (buffer-string)))) -(defalias 'nnrss-insert 'nnrss-insert-w3) - (defun nnrss-mime-encode-string (string) (mm-with-multibyte-buffer (insert string) @@ -880,8 +866,7 @@ Careful with this on large documents!" (defun nnrss-extract-hrefs (data) "Recursively extract hrefs from a page's source. -DATA should be the output of `xml-parse-region' or -`w3-parse-buffer'." +DATA should be the output of `xml-parse-region'." (mapcar (lambda (ahref) (cdr (assoc 'href (cadr ahref)))) (nnrss-find-el 'a data))) diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index c00425b364f..0891dba0387 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el @@ -25,9 +25,7 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. (eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))) ;; In Emacs 24, `open-protocol-stream' is an autoloaded alias for ;; `make-network-stream'. (unless (fboundp 'open-protocol-stream) @@ -1221,14 +1219,17 @@ If SEND-IF-FORCE, only send authinfo to the server if the nntp-authinfo-user user)) (unless (member user '(nil "")) (nntp-send-command "^3.*\r?\n" "AUTHINFO USER" user) - (when t ;???Should check if AUTHINFO succeeded - (nntp-send-command - "^2.*\r?\n" "AUTHINFO PASS" - (or passwd - nntp-authinfo-password - (setq nntp-authinfo-password - (read-passwd (format "NNTP (%s@%s) password: " - user nntp-address)))))))))) + (let ((result + (nntp-send-command + "^2.*\r?\n" "AUTHINFO PASS" + (or passwd + nntp-authinfo-password + (setq nntp-authinfo-password + (read-passwd (format "NNTP (%s@%s) password: " + user nntp-address))))))) + (if (not result) + (signal 'nntp-authinfo-rejected "Password rejected") + result)))))) ;;; Internal functions. diff --git a/lisp/gnus/nnvirtual.el b/lisp/gnus/nnvirtual.el index 40e033f581a..a3d950aa2b5 100644 --- a/lisp/gnus/nnvirtual.el +++ b/lisp/gnus/nnvirtual.el @@ -99,7 +99,7 @@ component group will show up when you enter the virtual group.") (let ((vbuf (nnheader-set-temp-buffer (get-buffer-create " *virtual headers*"))) (carticles (nnvirtual-partition-sequence articles)) - (system-name (system-name)) + (sysname (system-name)) cgroup carticle article result prefix) (while carticles (setq cgroup (caar carticles)) @@ -151,7 +151,7 @@ component group will show up when you enter the virtual group.") ;; and clean up the xrefs. (princ article nntp-server-buffer) (nnvirtual-update-xref-header cgroup carticle - prefix system-name) + prefix sysname) (forward-line 1)) ) @@ -378,7 +378,7 @@ component group will show up when you enter the virtual group.") (mapc 'nnheader-insert-nov headers)))) -(defun nnvirtual-update-xref-header (group article prefix system-name) +(defun nnvirtual-update-xref-header (group article prefix sysname) "Edit current NOV header in current buffer to have an xref to the component group, and also server prefix any existing xref lines." ;; Move to beginning of Xref field, creating a slot if needed. (beginning-of-line) @@ -393,7 +393,7 @@ component group will show up when you enter the virtual group.") (forward-char -1) (delete-char 1)) - (insert "Xref: " system-name " " group ":") + (insert "Xref: " sysname " " group ":") (princ article (current-buffer)) (insert " ") diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el index 66e8cb649f7..f53e314d1d8 100644 --- a/lisp/gnus/nnweb.el +++ b/lisp/gnus/nnweb.el @@ -22,8 +22,6 @@ ;;; Commentary: -;; Note: You need to have `w3' installed for some functions to work. - ;;; Code: (eval-when-compile (require 'cl)) @@ -38,7 +36,6 @@ (eval-and-compile (ignore-errors (require 'url))) -(autoload 'w3-parse-buffer "w3-parse") (nnoo-declare nnweb) @@ -441,7 +438,7 @@ Valid types include `google', `dejanews', and `gmane'.") t) (defun nnweb-google-identity (url) - "Return an unique identifier based on URL." + "Return a unique identifier based on URL." (if (string-match "selm=\\([^ &>]+\\)" url) (match-string 1 url) url)) @@ -527,7 +524,7 @@ Valid types include `google', `dejanews', and `gmane'.") url)) ;;; -;;; General web/w3 interface utility functions +;;; General web interface utility functions ;;; (defun nnweb-insert-html (parse) diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el index 34eb90ac863..4d9dfdaf2aa 100644 --- a/lisp/gnus/pop3.el +++ b/lisp/gnus/pop3.el @@ -561,6 +561,7 @@ Returns the process associated with the connection." 'tls) (t (or pop3-stream-type 'network))) + :warn-unless-encrypted t :capability-command "CAPA\r\n" :end-of-command "^\\(-ERR\\|+OK\\).*\n" :end-of-capability "^\\.\r?\n\\|^-ERR" diff --git a/lisp/gnus/registry.el b/lisp/gnus/registry.el index f636e8b36fc..55b83a8e889 100644 --- a/lisp/gnus/registry.el +++ b/lisp/gnus/registry.el @@ -25,11 +25,11 @@ ;; This library provides a general-purpose EIEIO-based registry ;; database with persistence, initialized with these fields: -;; version: a float, 0.1 currently (don't change it) +;; version: a float -;; max-hard: an integer, default 5000000 +;; max-size: an integer, default most-positive-fixnum -;; max-soft: an integer, default 50000 +;; prune-factor: a float between 0 and 1, default 0.1 ;; precious: a list of symbols @@ -57,14 +57,15 @@ ;; Note that whether a field has one or many pieces of data, the data ;; is always a list of values. -;; The user decides which fields are "precious", F2 for example. At -;; PRUNE TIME (when the :prune-function is called), the registry will -;; trim any entries without the F2 field until the size is :max-soft -;; or less. No entries with the F2 field will be removed at PRUNE -;; TIME. +;; The user decides which fields are "precious", F2 for example. When +;; the registry is pruned, any entries without the F2 field will be +;; removed until the size is :max-size * :prune-factor _less_ than the +;; maximum database size. No entries with the F2 field will be removed +;; at PRUNE TIME, which means it may not be possible to prune back all +;; the way to the target size. -;; When an entry is inserted, the registry will reject new entries -;; if they bring it over the max-hard limit, even if they have the F2 +;; When an entry is inserted, the registry will reject new entries if +;; they bring it over the :max-size limit, even if they have the F2 ;; field. ;; The user decides which fields are "tracked", F1 for example. Any @@ -82,28 +83,32 @@ (require 'eieio) (require 'eieio-base) +;; The version number needs to be kept outside of the class definition +;; itself. The persistent-save process does *not* write to file any +;; slot values that are equal to the default :initform value. If a +;; database object is at the most recent version, therefore, its +;; version number will not be written to file. That makes it +;; difficult to know when a database needs to be upgraded. +(defvar registry-db-version 0.2 + "The current version of the registry format.") + (defclass registry-db (eieio-persistent) ((version :initarg :version - :initform 0.1 - :type float - :custom float + :initform nil + :type (or null float) :documentation "The registry version.") - (max-hard :initarg :max-hard - :initform 5000000 + (max-size :initarg :max-size + ;; :initform most-positive-fixnum ;; see below :type integer :custom integer - :documentation "Never accept more than this many elements.") - (max-soft :initarg :max-soft - :initform 50000 - :type integer - :custom integer - :documentation "Prune as much as possible to get to this size.") + :documentation "The maximum number of registry entries.") (prune-factor :initarg :prune-factor :initform 0.1 :type float :custom float - :documentation "At the max-hard limit, prune size * this entries.") + :documentation "Prune to \(:max-size * :prune-factor\) less + than the :max-size limit. Should be a float between 0 and 1.") (tracked :initarg :tracked :initform nil :type t @@ -118,6 +123,25 @@ (data :initarg :data :type hash-table :documentation "The data hashtable."))) +;; Do this separately, since defclass doesn't allow expressions in :initform. +(oset-default 'registry-db max-size most-positive-fixnum) + +(defmethod initialize-instance :BEFORE ((this registry-db) slots) + "Check whether a registry object needs to be upgraded." + ;; Hardcoded upgrade routines. Version 0.1 to 0.2 requires the + ;; :max-soft slot to disappear, and the :max-hard slot to be renamed + ;; :max-size. + (let ((current-version + (and (plist-member slots :version) + (plist-get slots :version)))) + (when (or (null current-version) + (eql current-version 0.1)) + (setq slots + (plist-put slots :max-size (plist-get slots :max-hard))) + (setq slots + (plist-put slots :version registry-db-version)) + (cl-remf slots :max-hard) + (cl-remf slots :max-soft)))) (defmethod initialize-instance :AFTER ((this registry-db) slots) "Set value of data slot of THIS after initialization." @@ -255,7 +279,7 @@ This is the key count of the :data slot." (defmethod registry-full ((db registry-db)) "Checks if registry-db THIS is full." (>= (registry-size db) - (oref db :max-hard))) + (oref db :max-size))) (defmethod registry-insert ((db registry-db) key entry) "Insert ENTRY under KEY into the registry-db THIS. @@ -267,7 +291,7 @@ Errors out if the key exists already." (assert (not (registry-full db)) nil - "registry max-hard size limit reached") + "registry max-size limit reached") ;; store the entry (puthash key entry (oref db :data)) @@ -300,58 +324,51 @@ Errors out if the key exists already." (registry-lookup-secondary-value db tr val value-keys)))) (oref db :data)))))) -(defmethod registry-prune ((db registry-db) &optional sortfun) - "Prunes the registry-db object THIS. -Removes only entries without the :precious keys if it can, -then removes oldest entries first. -Returns the number of deleted entries. -If SORTFUN is given, tries to keep entries that sort *higher*. -SORTFUN is passed only the two keys so it must look them up directly." - (dolist (collector '(registry-prune-soft-candidates - registry-prune-hard-candidates)) - (let* ((size (registry-size db)) - (collected (funcall collector db)) - (limit (nth 0 collected)) - (candidates (nth 1 collected)) - ;; sort the candidates if SORTFUN was given - (candidates (if sortfun (sort candidates sortfun) candidates)) - (candidates-count (length candidates)) - ;; are we over max-soft? - (prune-needed (> size limit))) - - ;; while we have more candidates than we need to remove... - (while (and (> candidates-count (- size limit)) candidates) - (decf candidates-count) - (setq candidates (cdr candidates))) - - (registry-delete db candidates nil) - (length candidates)))) - -(defmethod registry-prune-soft-candidates ((db registry-db)) - "Collects pruning candidates from the registry-db object THIS. -Proposes only entries without the :precious keys." +(defmethod registry-prune ((db registry-db) &optional sortfunc) + "Prunes the registry-db object DB. + +Attempts to prune the number of entries down to \(* +:max-size :prune-factor\) less than the max-size limit, so +pruning doesn't need to happen on every save. Removes only +entries without the :precious keys, so it may not be possible to +reach the target limit. + +Entries to be pruned are first sorted using SORTFUNC. Entries +from the front of the list are deleted first. + +Returns the number of deleted entries." + (let ((size (registry-size db)) + (target-size (- (oref db :max-size) + (* (oref db :max-size) + (oref db :prune-factor)))) + candidates) + (if (> size target-size) + (progn + (setq candidates + (registry-collect-prune-candidates + db (- size target-size) sortfunc)) + (length (registry-delete db candidates nil))) + 0))) + +(defmethod registry-collect-prune-candidates ((db registry-db) limit sortfunc) + "Collects pruning candidates from the registry-db object DB. + +Proposes only entries without the :precious keys, and attempts to +return LIMIT such candidates. If SORTFUNC is provided, sort +entries first and return candidates from beginning of list." (let* ((precious (oref db :precious)) (precious-p (lambda (entry-key) (cdr (memq (car entry-key) precious)))) (data (oref db :data)) - (limit (oref db :max-soft)) - (candidates (loop for k being the hash-keys of data - using (hash-values v) - when (notany precious-p v) - collect k))) - (list limit candidates))) - -(defmethod registry-prune-hard-candidates ((db registry-db)) - "Collects pruning candidates from the registry-db object THIS. -Proposes any entries over the max-hard limit minus size * prune-factor." - (let* ((data (oref db :data)) - ;; prune to (size * prune-factor) below the max-hard limit so - ;; we're not pruning all the time - (limit (max 0 (- (oref db :max-hard) - (* (registry-size db) (oref db :prune-factor))))) - (candidates (loop for k being the hash-keys of data - collect k))) - (list limit candidates))) + (candidates (cl-loop for k being the hash-keys of data + using (hash-values v) + when (notany precious-p v) + collect (cons k v)))) + ;; We want the full entries for sorting, but should only return a + ;; list of entry keys. + (when sortfunc + (setq candidates (sort candidates sortfunc))) + (delq nil (cl-subseq (mapcar #'car candidates) 0 limit)))) (provide 'registry) ;;; registry.el ends here diff --git a/lisp/gnus/rfc1843.el b/lisp/gnus/rfc1843.el index 09cdba3c69c..cab2f4e751c 100644 --- a/lisp/gnus/rfc1843.el +++ b/lisp/gnus/rfc1843.el @@ -31,10 +31,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'mm-util) diff --git a/lisp/gnus/sieve-manage.el b/lisp/gnus/sieve-manage.el index e4eca0285cc..72f22e76b8f 100644 --- a/lisp/gnus/sieve-manage.el +++ b/lisp/gnus/sieve-manage.el @@ -71,10 +71,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (if (locate-library "password-cache") (require 'password-cache) (require 'password)) diff --git a/lisp/gnus/smime.el b/lisp/gnus/smime.el index b3feb7f746b..6f043df6121 100644 --- a/lisp/gnus/smime.el +++ b/lisp/gnus/smime.el @@ -118,9 +118,6 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (require 'dig) (if (locate-library "password-cache") diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index 8177288f076..500f34139be 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el @@ -38,10 +38,6 @@ ;;{{{ compilation directives and autoloads/requires -;; For Emacs <22.2 and XEmacs. -(eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) - (eval-when-compile (require 'cl)) (require 'message) ;for the message-fetch-field functions |