Merge from emacs--devo--0, emacs--rel--22
authorMiles Bader <miles@gnu.org>
Thu, 24 Apr 2008 04:19:22 +0000 (04:19 +0000)
committerMiles Bader <miles@gnu.org>
Thu, 24 Apr 2008 04:19:22 +0000 (04:19 +0000)
Patches applied:

 * emacs--devo--0  (patch 1092-1093, 1095, 1097, 1099-1104, 1106, 1108, 1110, 1113, 1118-1119, 1121)

   - Update from CVS
   - Merge from emacs--rel--22
   - Merge from gnus--devo--0

 * emacs--rel--22  (patch 241-243, 245-246, 249, 254)

   - Update from CVS
   - Merge from gnus--rel--5.10

2008-04-22  Juri Linkov  <juri@jurta.org>

   * lisp/mailcap.el (mailcap-file-default-commands): New function.

2008-04-08  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/compface.el (uncompface): Make buffer unibyte.

2008-04-05  Glenn Morris  <rgm@gnu.org>

   * lisp/gnus-ems.el (mm-disable-multibyte): Autoload it.

2008-04-05  Stefan Monnier  <monnier@iro.umontreal.ca>

   * lisp/mm-util.el (mm-with-unibyte-buffer, mm-with-multibyte-buffer): Prefer
   mm-(en|dis)able-multibyte to default-enable-multibyte-characters.

   * lisp/nnheader.el (nnheader-init-server-buffer): Change buffer's
   multibyteness after rather than before erasing it.

   * lisp/gnus-art.el (gnus-mime-replace-part): Remove unnecessary use of
   mm-with-multibyte.
   (gnus-request-article-this-buffer): Make sure the proper decoding is
   used if gnus-original-article-buffer happens to be unibyte.

   * lisp/gnus-ems.el (gnus-x-splash): Prefer mm-disable-multibyte to
   default-enable-multibyte-characters.

   * lisp/gnus-fun.el (gnus-display-x-face-in-from): Remove unnecessary use of
   default-enable-multibyte-characters.

   * lisp/mm-decode.el (mm-inline-media-tests): Add entry for x-diff.

   * lisp/nnweb.el (nnweb-init): Avoid nn-with-unibyte.

2008-03-31  Glenn Morris  <rgm@gnu.org>

   * lisp/message.el (mml2015-use): Declare for compiler.
   (message-info): Require mml2015 when appropriate.

2008-03-30  Stefan Monnier  <monnier@iro.umontreal.ca>

   * lisp/nntp.el (nntp-netcat-command): Rename from nntp-via-netcat-command.
   (nntp-netcat-switches): Rename from nntp-via-netcat-switches.
   (nntp-open-telnet, nntp-open-rlogin): Use with-current-buffer.
   (nntp-service-to-port): New function.
   (nntp-open-via-rlogin-and-netcat, nntp-open-via-telnet-and-telnet)
   (nntp-open-telnet-stream, nntp-open-via-rlogin-and-telnet): Use it.
   (nntp-open-netcat-stream): New function.
   (nntp-open-via-rlogin-and-netcat): Don't use a pty.

2008-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>

   * lisp/message.el (message-make-in-reply-to): Use mm-with-multibyte-buffer.

2008-03-28  Magnus Henoch  <mange@freemail.hu>

   * lisp/net/dns.el (dns-write): Use set-buffer-multibyte.

2008-03-14  Stefan Monnier  <monnier@iro.umontreal.ca>

   * texi/gnus.texi (Example Methods, Direct Functions, Indirect Functions)
   (Common Variables): Give precedence to the netcat methods over the
   telnet methods, and mention that they are more reliable.

Revision: emacs@sv.gnu.org/gnus--devo--0--patch-481

155 files changed:
contrib/smtpmail.el
etc/images/README
lisp/ChangeLog
lisp/ChangeLog.2
lisp/binhex.el
lisp/canlock.el
lisp/compface.el
lisp/deuglify.el
lisp/dig.el
lisp/dns.el
lisp/earcon.el
lisp/flow-fill.el
lisp/format-spec.el
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-async.el
lisp/gnus-audio.el
lisp/gnus-bcklg.el
lisp/gnus-bookmark.el
lisp/gnus-cache.el
lisp/gnus-cite.el
lisp/gnus-cus.el
lisp/gnus-demon.el
lisp/gnus-diary.el
lisp/gnus-dired.el
lisp/gnus-draft.el
lisp/gnus-dup.el
lisp/gnus-eform.el
lisp/gnus-ems.el
lisp/gnus-fun.el
lisp/gnus-group.el
lisp/gnus-int.el
lisp/gnus-kill.el
lisp/gnus-logic.el
lisp/gnus-mh.el
lisp/gnus-ml.el
lisp/gnus-mlspl.el
lisp/gnus-move.el
lisp/gnus-msg.el
lisp/gnus-nocem.el
lisp/gnus-picon.el
lisp/gnus-range.el
lisp/gnus-registry.el
lisp/gnus-score.el
lisp/gnus-setup.el
lisp/gnus-sieve.el
lisp/gnus-soup.el
lisp/gnus-spec.el
lisp/gnus-srvr.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-undo.el
lisp/gnus-util.el
lisp/gnus-uu.el
lisp/gnus-vm.el
lisp/gnus-win.el
lisp/gnus.el
lisp/hashcash.el
lisp/hmac-def.el
lisp/hmac-md5.el
lisp/html2text.el
lisp/ietf-drums.el
lisp/imap.el
lisp/mail-parse.el
lisp/mail-prsvr.el
lisp/mail-source.el
lisp/mailcap.el
lisp/md4.el
lisp/message.el
lisp/messcompat.el
lisp/mm-bodies.el
lisp/mm-decode.el
lisp/mm-encode.el
lisp/mm-extern.el
lisp/mm-partial.el
lisp/mm-url.el
lisp/mm-util.el
lisp/mm-uu.el
lisp/mm-view.el
lisp/mml-sec.el
lisp/mml-smime.el
lisp/mml.el
lisp/mml1991.el
lisp/mml2015.el
lisp/netrc.el
lisp/nnagent.el
lisp/nnbabyl.el
lisp/nndb.el
lisp/nndiary.el
lisp/nndir.el
lisp/nndoc.el
lisp/nndraft.el
lisp/nneething.el
lisp/nnfolder.el
lisp/nngateway.el
lisp/nnheader.el
lisp/nnimap.el
lisp/nnkiboze.el
lisp/nnlistserv.el
lisp/nnmail.el
lisp/nnmaildir.el
lisp/nnmbox.el
lisp/nnmh.el
lisp/nnml.el
lisp/nnnil.el
lisp/nnoo.el
lisp/nnrss.el
lisp/nnslashdot.el
lisp/nnsoup.el
lisp/nnspool.el
lisp/nntp.el
lisp/nnultimate.el
lisp/nnvirtual.el
lisp/nnwarchive.el
lisp/nnweb.el
lisp/nnwfm.el
lisp/ntlm.el
lisp/parse-time.el
lisp/password-cache.el
lisp/pgg-def.el
lisp/pgg-gpg.el
lisp/pgg-parse.el
lisp/pgg-pgp5.el
lisp/pgg.el
lisp/pop3.el
lisp/qp.el
lisp/rfc1843.el
lisp/rfc2045.el
lisp/rfc2047.el
lisp/rfc2104.el
lisp/rfc2231.el
lisp/sasl-cram.el
lisp/sasl-digest.el
lisp/sasl-ntlm.el
lisp/sasl.el
lisp/score-mode.el
lisp/sha1.el
lisp/sieve-manage.el
lisp/sieve-mode.el
lisp/sieve.el
lisp/smiley.el
lisp/smime.el
lisp/spam-report.el
lisp/spam-stat.el
lisp/spam-wash.el
lisp/spam.el
lisp/starttls.el
lisp/time-date.el
lisp/tls.el
lisp/utf7.el
lisp/uudecode.el
lisp/webmail.el
lisp/yenc.el
texi/ChangeLog
texi/gnus.texi

index 6bd9f8f..3662902 100644 (file)
@@ -1030,5 +1030,5 @@ many continuation lines."
 
 (provide 'smtpmail)
 
-;;; arch-tag: a76992df-6d71-43b7-9e72-4bacc6c05466
+;; arch-tag: a76992df-6d71-43b7-9e72-4bacc6c05466
 ;;; smtpmail.el ends here
index b3271ae..c7aa704 100644 (file)
@@ -57,6 +57,7 @@ the gnome-icons-theme package for more information.
 Emacs images and their source in the GNOME icons stock/ directory:
 
   attach.xpm                document/stock_attach
+  bookmark_add.xpm          actions/bookmark_add
   cancel.xpm                slightly modified generic/stock_stop
   connect.xpm               net/stock_connect
   contact.xpm               net/stock_contact
index 87065fe..edadea1 100644 (file)
@@ -1,3 +1,7 @@
+2008-04-22  Juri Linkov  <juri@jurta.org>
+
+       * mailcap.el (mailcap-file-default-commands): New function.
+
 2008-04-13  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * message.el (message-signature-separator, message-cite-function):
        * gnus-registry.el: Initialize the registry when gnus-registry-install
        is t.
 
+2008-04-08  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * compface.el (uncompface): Make buffer unibyte.
+
+2008-04-05  Glenn Morris  <rgm@gnu.org>
+
+       * gnus-ems.el (mm-disable-multibyte): Autoload it.
+
+2008-04-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * mm-util.el (mm-with-unibyte-buffer, mm-with-multibyte-buffer): Prefer
+       mm-(en|dis)able-multibyte to default-enable-multibyte-characters.
+
+       * nnheader.el (nnheader-init-server-buffer): Change buffer's
+       multibyteness after rather than before erasing it.
+
+       * gnus-art.el (gnus-mime-replace-part): Remove unnecessary use of
+       mm-with-multibyte.
+       (gnus-request-article-this-buffer): Make sure the proper decoding is
+       used if gnus-original-article-buffer happens to be unibyte.
+
+       * gnus-ems.el (gnus-x-splash): Prefer mm-disable-multibyte to
+       default-enable-multibyte-characters.
+
+       * gnus-fun.el (gnus-display-x-face-in-from): Remove unnecessary use of
+       default-enable-multibyte-characters.
+
+       * mm-decode.el (mm-inline-media-tests): Add entry for x-diff.
+
+       * nnweb.el (nnweb-init): Avoid nn-with-unibyte.
+
 2008-04-02  Simon Josefsson  <simon@josefsson.org>
 
        * imap.el (imap-enable-exchange-bug-workaround): New variable.
        to enable bug workaround or not.
        (nnimap-find-minmax-uid): Only enable workaround conditionally.
 
+2008-03-31  Glenn Morris  <rgm@gnu.org>
+
+       * message.el (mml2015-use): Declare for compiler.
+       (message-info): Require mml2015 when appropriate.
+
 2008-03-31  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * Makefile.in (EMACS_COMP): Quote directory name that might contain
        whitespace.
 
+2008-03-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * nntp.el (nntp-netcat-command): Rename from nntp-via-netcat-command.
+       (nntp-netcat-switches): Rename from nntp-via-netcat-switches.
+       (nntp-open-telnet, nntp-open-rlogin): Use with-current-buffer.
+       (nntp-service-to-port): New function.
+       (nntp-open-via-rlogin-and-netcat, nntp-open-via-telnet-and-telnet)
+       (nntp-open-telnet-stream, nntp-open-via-rlogin-and-telnet): Use it.
+       (nntp-open-netcat-stream): New function.
+       (nntp-open-via-rlogin-and-netcat): Don't use a pty.
+
 2008-03-29  Sven Joachim  <svenjoac@gmx.de>
 
        * gnus-sum.el (gnus-summary-make-menu-bar): Add missing dots.
 
+2008-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * message.el (message-make-in-reply-to): Use mm-with-multibyte-buffer.
+
+2008-03-28  Magnus Henoch  <mange@freemail.hu>
+
+       * net/dns.el (dns-write): Use set-buffer-multibyte.
+
 2008-03-28  Michael Harnois  <mdharnois@gmail.com>  (tiny change)
 
        * nnimap.el (nnimap-find-minmax-uid): Fix Exchange 2007 IMAP problem.
 
 2008-03-24  Reiner Steib  <Reiner.Steib@gmx.de>
 
-       * message.el (message-signature-separator): Change default.  Improve
-       custom type.
+       * message.el (message-signature-separator): Change default.
+       Improve custom type.
        (message-cite-function): Change default to
        message-cite-original-without-signature.
 
 
        * message.el (message-simplify-recipients): Fix previous commit.
 
+2008-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * mm-util.el (mm-set-buffer-multibyte): New function.
+       * mm-decode.el (mm-copy-to-buffer): Use it.
+
 2008-03-19  Glenn Morris  <rgm@gnu.org>
 
        * tls.el (open-tls-stream): Restore use of `tls-end-of-info'.
 
 2008-03-19  Reiner Steib  <Reiner.Steib@gmx.de>
 
-       * message.el (message-alter-recipients-discard-bogus-full-name): New
-       function.
+       * message.el (message-alter-recipients-discard-bogus-full-name):
+       New function.
        (message-alter-recipients-function): New variable.
        (message-get-reply-headers): Use it.
        (message-replace-header): New helper function.
        (gnus-button-alist): Extend gnus-button-handle-info-keystrokes entry.
        (gnus-button-handle-info-keystrokes): Handle index entries.
 
+2008-03-15  Glenn Morris  <rgm@gnu.org>
+
+       * calendar/parse-time.el (parse-time-string): Simplify.
+
 2008-03-14  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * mail-source.el (mail-source-delete-old-incoming) Fix regexp to find
        * auth-source.el (auth-sources): Renamed from auth-source-choices.
        (auth-source-pick): Use it.
 
+2008-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * binhex.el (binhex-decode-region-internal):
+       * mail/uudecode.el (uudecode-decode-region-internal):
+       * dns.el (dns-read-string-name, dns-read, dns-read-type, query-dns):
+       * sha1.el (sha1-string-external): Use set-buffer-multibyte rather than
+       setting default-enable-multibyte-characters.
+
 2008-03-12  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * auth-source.el (auth-source-protocols)
        (nntp-open-via-rlogin-and-netcat, nntp-open-via-telnet-and-telnet):
        Make sure the nntp port to specify is a string.
 
+2008-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * nntp.el: Use with-current-buffer.
+       (nntp-send-buffer): Just set the buffer to unibyte rather than use the
+       dubious mm-with-unibyte-current-buffer.
+       (nntp-with-open-group-function): New function extracted from
+       nntp-with-open-group macro.
+       (nntp-with-open-group): Use the function, so it's easier to debug.
+       Add indentation and debugging info.
+       (nntp-open-telnet-stream, nntp-open-via-rlogin-and-telnet): Recommend
+       the use of the netcat alternatives.
+
+       * rfc2047.el (rfc2047-decode-string): Don't use `m'.
+       Avoid mm-string-as-multibyte as well.
+
+       * nnweb.el (nnweb-insert-html):
+       Remove use of nnheader-string-as-multibyte.
+
+       * nnheader.el (nnheader-init-server-buffer): Use with-current-buffer.
+       (nnheader-string-as-multibyte): Remove.
+
+       * mm-view.el: Use inhibit-read-only.
+       (mm-inline-text-html-render-with-w3, mm-inline-message): Use dolist.
+       (mm-pkcs7-signed-magic, mm-pkcs7-enveloped-magic): Use just string
+       or unibyte-string.
+
+       * mm-uu.el (mm-uu-copy-to-buffer): Preserve (uni/multi)byteness.
+       (mm-uu-yenc-extract): Use with-current-buffer.
+
+       * gnus-soup.el (gnus-soup-send-packet): Don't use
+       mm-with-unibyte-current-buffer since the buffer is unibyte anyway.
+
+       * nnmh.el: Use with-current-buffer.
+       (nnmh-request-list-1): Use mm-string-to-multibyte rather than
+       mm-string-as-multibyte on the output of mm-encode-coding-string.
+
+       * nnimap.el (nnimap-retrieve-headers-progress): Use a unibyte buffer.
+       (nnimap-request-move-article): Use with-current-buffer.
+
+       * mm-decode.el (mm-with-part): Set the buffer to unibyte before
+       inserting the handle-buffer's text, so the implicit multibyte->unibyte
+       conversion uses string-make-unibyte rather than string-as-unibyte.
+
+       * gnus-msg.el: Use with-current-buffer.
+
+       * message.el (message-ignored-resent-headers): Add "Delivered-To".
+
 2008-03-10  Daiki Ueno  <ueno@unixuser.org>
 
        * mml2015.el (mml2015-epg-passphrase-callback): Type cast KEY-ID to a
 
        * lpath.el: Consider the case without Emacs/W3.
 
+2008-03-08  Glenn Morris  <rgm@gnu.org>
+
+       * calendar/time-date.el (date-to-time, time-subtract, time-add)
+       (safe-date-to-time): Doc fixes.
+
 2008-03-08  Reiner Steib  <Reiner.Steib@gmx.de>
 
-       * mail-source.el (mail-source-delete-old-incoming-confirm): Change
-       default to nil.
+       * mail-source.el (mail-source-delete-old-incoming-confirm):
+       Change default to nil.
        (mail-source-delete-old-incoming): Make confirmation prompt more clear.
 
 2008-03-07  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * mm-view.el (mm-w3m-standalone-supports-m17n-p): Fix typo.
 
+2008-03-07  Karl Fogel  <kfogel@red-bean.com>
+
+       * gnus-bookmark.el: Adjust for renames in bookmark.el.
+       (gnus-bookmark-make-record): Was `gnus-bookmark-make-cell'.
+       (gnus-bookmark-jump): Adjust some variable names.
+
 2008-03-06  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * auth-source.el: New package.
 
        * gnus-registry.el (gnus-registry-install): Allow 'ask as an option.
        (gnus-registry-initialize, gnus-registry-install-p): Use it.
-       (gnus-registry-install-shortcuts): Renamed from
+       (gnus-registry-install-shortcuts): Rename from
        gnus-registry-install-shortcuts-and-menus.  Installs the shortcuts in
        the `gnus-registry-mark-map' keymap dynamically from
        `gnus-registry-marks'.  The generated functions update the summary line
        * gnus-sum.el (gnus-summary-make-menu-bar): Add menu entries for all
        the registry mark functions.
 
+2008-03-05  Glenn Morris  <rgm@gnu.org>
+
+       * gnus-art.el (gnus-article-mode-line-format-alist): Move to gnus-sum.
+       * gnus-sum.el (gnus-article-mode-line-format-alist): Move here from
+       gnus-art.
+       (top-level): No need to load own source when compiling.
+
 2008-03-04  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus-sum.el (gnus-print-buffer): Honor ps-print-color-p.
        Suggested by <chris.anderton@zetnet.co.uk>.
 
+2008-03-04  Glenn Morris  <rgm@gnu.org>
+
+       * gnus-sum.el (top-level): No need to require gnus when compiling,
+       since unconditionally required near start of file.
+       (gnus-summary-display-while-building): Move definition before use.
+
 2008-03-04  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * gnus-registry.el (gnus-registry-user-format-function-M): Add
        * gnus-art.el (gnus-article-describe-bindings): Work for the version of
        `where-is-internal' that returns a range of key sequences.
 
+2008-03-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * mm-bodies.el (mm-decode-content-transfer-encoding): Simplify.
+
+       * gnus-sum.el: Use inhibit-read-only and with-current-buffer.
+       (gnus-summary-jump-to-group): Consider windows on other displayed
+       frames as well.  Similar changes might be needed elsewhere, but that's
+       the one I've bumped into during my use.
+
+       * nndoc.el (nndoc-oe-dbx-type-p):
+       * gnus-msg.el (gnus-debug):
+       * gnus-group.el (gnus-update-group-mark-positions):
+       Use mm-string-to-multibyte.
+
 2008-03-02  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * mml2015.el (mml2015-extract-cleartext-signature): Explain that it
 2008-02-11  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus-topic.el (gnus-topic-select-group, gnus-topic-read-group):
-       Document negativ prefix.
+       Document negative prefix.
 
-       * gnus-group.el (gnus-group-read-group): Document negativ prefix.
+       * gnus-group.el (gnus-group-read-group): Document negative prefix.
 
 2008-02-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        (gnus-mime-delete-part): Don't write description line if empty.
        (gnus-article-encrypt-body): Add confirmation for gnus-novice-user.
 
-2007-12-14  Johan Bockg\e,Ae\e(Brd  <bojohan@gnu.org>
+2007-12-14  Johan Bockgård  <bojohan@gnu.org>
 
        * gnus-sum.el (gnus-summary-mark-unread-as-read)
        (gnus-summary-mark-read-and-unread-as-read)
 
        * gnus-cache.el (gnus-jog-cache): Ditto.
 
-       * gnus-msg.el (gnus-summary-reply): Ignore
-       gnus-confirm-mail-reply-to-news for wide and very wide replies.
+       * gnus-msg.el (gnus-summary-reply):
+       Ignore gnus-confirm-mail-reply-to-news for wide and very wide replies.
 
 2007-11-24  Reiner Steib  <Reiner.Steib@gmx.de>
 
 
 2007-11-24  Reiner Steib  <Reiner.Steib@gmx.de>
 
-       * gnus-cache.el (gnus-cache-generate-nov-databases): Use
-       nnml-generate-nov-databases-directory instead of
+       * gnus-cache.el (gnus-cache-generate-nov-databases):
+       Use nnml-generate-nov-databases-directory instead of
        nnml-generate-nov-databases-1.
 
 2007-11-24  Glenn Morris  <rgm@gnu.org>
 2007-10-26  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * message.el (message-remove-blank-cited-lines): New function.
-       Suggested by Karl Pl\e,Ad\e(Bsterer.
+       Suggested by Karl Plästerer.
 
 2007-10-25  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * mm-uu.el (mm-uu-type-alist): Refer to mm-uu-configure-list in doc
        string.
 
-2007-07-20  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+2007-07-20  Michaël Cadilhac  <michael@cadilhac.name>
 
        * nnrss.el (nnrss-ignore-article-fields): New variable.  List of fields
        that should be ignored when comparing distant RSS articles with local
 
 2007-05-24  Katsumi Yamaoka  <yamaoka@jpl.org>
 
-       * message.el (message-narrow-to-headers-or-head): Ignore
-       mail-header-separator in the body.
+       * message.el (message-narrow-to-headers-or-head):
+       Ignore mail-header-separator in the body.
 
 2007-05-23  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * dgnushack.el: Autoload ad-add-advice for XEmacs.  bbdb-com.el that
        spam.el loads uses it in the compiled defadvice form.
 
-2007-05-12  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+2007-05-12  Michaël Cadilhac  <michael@cadilhac.name>
 
        * gnus-sum.el (gnus-articles-to-read)
        (gnus-summary-insert-old-articles): Don't truncate group name for
        * gnus-sum.el (gnus-simplify-subject-fully): Use
        `truncate-string-to-width' instead.
 
-2007-05-11  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+2007-05-11  Michaël Cadilhac  <michael@cadilhac.name>
 
        * gnus-sum.el (gnus-summary-next-group-on-exit): New variable.  Tell
        if, on summary exit, the next group has to be selected.
 
        * smiley.el (smiley-regexp-alist): Add "dead" smiley.
 
-2007-02-14  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+2007-02-14  Michaël Cadilhac  <michael@cadilhac.name>
 
        * nntp.el (nntp-send-command): Don't wait for echoes when
        nntp-open-ssl-stream is used.
 
        * gnus-cite.el (gnus-message-citation-mode): Don't define in XEmacs.
 
-2006-12-29  Jouni K. Sepp\e,Ad\e(Bnen  <jks@iki.fi>
+2006-12-29  Jouni K. Seppänen  <jks@iki.fi>
 
        * nnimap.el (nnimap-expunge-search-string): Mention
        nnimap-search-uids-not-since-is-evil in docstring.
        * gnus-sum.el (gnus-sort-threads, gnus-summary-limit-children):
        Use `max' to avoid the value of `max-lisp-eval-depth' decreasing.
 
-2006-12-04  Jouni K. Sepp\e,Ad\e(Bnen  <jks@iki.fi>
+2006-12-04  Jouni K. Seppänen  <jks@iki.fi>
 
        * mm-url.el (mm-url-predefined-programs): Call curl with correct
        options.
 
        * pgg-def.el (pgg-truncate-key-identifier): Truncate the key ID to 8
        letters from the end.  Thanks to "David Smith" <davidsmith@acm.org> and
-       andreas@altroot.de (Andreas V\e,Av\e(Bgele).
+       andreas@altroot.de (Andreas Vögele).
 
        FIXME: Use `tiny change'?
 
 
        * nnrss.el (nnrss-check-group): Bind hash-index.
 
-2006-05-23  Micha\e,Ak\e(Bl Cadilhac  <michael.cadilhac@lrde.org>
+2006-05-23  Michaël Cadilhac  <michael.cadilhac@lrde.org>
 
        * nnrss.el (nnrss-check-group): Use the md5sum of the whole RSS item as
        its hash index.  Store this hash in `nnrss-group-data'.
        * gnus-topic.el (gnus-topic-display-missing-topic): Skip past
        groups in the parent topic.
 
-2006-04-16  Jo\e,Ac\e(Bo Cachopo  <joao.cachopo@inesc-id.pt>  (tiny change)
+2006-04-16  João Cachopo  <joao.cachopo@inesc-id.pt>  (tiny change)
 
        * spam.el (spam-necessary-extra-headers): Add X-CRM114-Status.
        (spam-extra-header-to-number): Return the CRM114 number as a
        * gnus-art.el (gnus-button-valid-localpart-regexp): Exclude `@'.
        (gnus-article-browse-delete-temp): Add :version.
 
-2006-04-11  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2006-04-11  Arne Jørgensen  <arne@arnested.dk>
 
        * gnus-sieve.el (gnus-sieve-generate): Delete from the start of
        the sieve region.
        Lisp error; give up parsing of parameters if it failed in
        extracting type.
 
-2006-02-14  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2006-02-14  Arne Jørgensen  <arne@arnested.dk>
 
        * smime.el (smime-cert-by-ldap-1): Fix bug where
        `smime-ldap-search' returns results without userCertificates.
 
        * mml.el (mml-preview): Use it; doc fix.
 
+2005-10-30  Chong Yidong  <cyd@stupidchicken.com>
+
+       * imap.el (imap-open): Handle case where buffer is a buffer object.
+
 2005-10-29  Romain Francoise  <romain@orebokech.com>
 
        * message.el (message-fix-before-sending): Fix comment.
        whitespace removed in revision 7.8.  Use concatenated string to
        protect trailing whitespace.
 
-2005-10-27  Jouni K. Sepp\e,Ad\e(Bnen  <jks@iki.fi>
+2005-10-27  Jouni K. Seppänen  <jks@iki.fi>
 
        * nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable.
        (nnimap-request-expire-articles): Use it to avoid sending 'UID
        * gnus-group.el (gnus-group-compact-group): Invalidate original
        article buffer.
        * gnus-srvr.el (gnus-server-compact-server): Ditto.
-       * nnml.el (nnml-request-compact-group): handle self Xref: field in
+       * nnml.el (nnml-request-compact-group): Handle self Xref: field in
        NOV database and in article itself.
        Invalidate article backlog.
 
        * message.el (message-display-completion-list): New function.
        (message-expand-group): Use it; make sure the Completions buffer
        is modifiable.
-
 2005-10-23  Chong Yidong  <cyd@stupidchicken.com>
 
        * gnus-sum.el (gnus-ignored-from-addresses): Handle case where
 
        * message.el (message-idna-to-ascii-rhs-1): Reformat.
 
-2005-09-27  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2005-09-27  Arne Jørgensen  <arne@arnested.dk>
 
        * message.el (message-remove-duplicates): New function.
        Implementation borrowed from `gnus-remove-duplicates'.
 
 2005-09-05  Reiner Steib  <Reiner.Steib@gmx.de>
 
-       * message.el (message-tab-body-function): Fixed mismatched custom
-       type.
+       * message.el (message-tab-body-function): Fix mismatched custom type.
 
        * gnus.el (gnus-group-change-level-function): Ditto.
 
        * mm-extern.el (mm-extern-local-file, mm-inline-external-body):
        * pop3.el (pop3-user): Don't use `format' on `error' arguments.
 
-2005-06-16  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2005-06-16  Arne Jørgensen  <arne@arnested.dk>
 
        * smime.el (smime-cert-by-ldap-1): Detect PEM format without
        header by looking for magic "MII" at the beginnig.
        * smime.el (smime-cert-by-ldap-1): Don't use
        replace-regexp-in-string.
 
-2005-05-31  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2005-05-31  Arne Jørgensen  <arne@arnested.dk>
 
        * smime-ldap.el (smime-ldap-search): Add compatibility for XEmacs.
 
 
        * nnimap.el (nnimap-retrieve-headers-from-server): Fix last change.
 
-2005-03-10  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>  (tiny change)
+2005-03-10  Arne Jørgensen  <arne@arnested.dk>  (tiny change)
 
        * nnimap.el (nnimap-retrieve-headers-from-server): Fix off-by-one flaw.
 
        * gnus-sum.el (gnus-summary-exit): Move point after displaying the
        buffer, so it moves the window's cursor.
 
-2005-02-26  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2005-02-26  Arne Jørgensen  <arne@arnested.dk>
 
        * mm-decode.el (mm-dissect-buffer): Pass the from field on to
        `mm-dissect-multipart' and receive the from field as an (optional)
 2005-02-22  Simon Josefsson  <jas@extundo.com>
 
        * encrypt.el (encrypt-password-cache-expiry): Remove (use
-       `password-cache-expiry' instead).  Reported by Arne J\e,Ax\e(Brgensen
+       `password-cache-expiry' instead).  Reported by Arne Jørgensen
        <arne@arnested.dk>.
        (encrypt): Add password-cache and password-cache-expiry as group
        members.
 
-2005-02-22  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2005-02-22  Arne Jørgensen  <arne@arnested.dk>
 
        * smime.el (smime-ldap-host-list): Doc fix.
        (smime-ask-passphrase): Use `password-read-and-add' to read (and
 
        * mml.el (mml-parse-1): Use them.
 
-2005-02-21  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2005-02-21  Arne Jørgensen  <arne@arnested.dk>
 
        * nnrss.el (nnrss-verbose): Removed.
        (nnrss-request-group): Use `nnheader-message' instead.
        mml-smime-get-dns-ldap.
        (mml-smime-encrypt-query): Use new function.  Default to ldap.
 
-2005-02-14  Arne J\e,Ax\e(Brgensen  <arne@arnested.dk>
+2005-02-14  Arne Jørgensen  <arne@arnested.dk>
 
        * smime.el: Require smime-ldap.
        (smime-ldap-host-list): New variable.
 
 2005-01-03  Reiner Steib  <Reiner.Steib@gmx.de>
 
-       * gnus-score.el (gnus-decay-scores, gnus-score-load-file): Allow
-       to apply decay on score files matching a regexp.
+       * gnus-score.el (gnus-decay-scores, gnus-score-load-file):
+       Allow to apply decay on score files matching a regexp.
 
 2004-12-30  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 
        * gnus-art.el (gnus-header-button-alist): Handle URLs in OpenPGP:
        headers separately.
-       (gnus-button-openpgp): New function, inspired by Jochen K\e,A|\e(Bpper
+       (gnus-button-openpgp): New function, inspired by Jochen Küpper
        <jochen-+It19tn3Rl9sbm7dSapR3bNAH6kLmebB@public.gmane.org>.
 
 2004-11-14  Reiner Steib  <Reiner.Steib@gmx.de>
 
 2004-08-26  Katsumi Yamaoka  <yamaoka@jpl.org>
 
-       * nndoc.el (nndoc-type-alist): Fix regexp in the rfc822-forward
-       entry.
+       * nndoc.el (nndoc-type-alist): Fix regexp in the rfc822-forward entry.
 
        * gnus-group.el (gnus-group-line-format-alist): Convert the value
        of gnus-tmp-news-method into string under XEmacs.  It will be
        (gnus-pp): New function.
        (gnus-pp-to-string): New function.
 
-       * gnus-cus.el (gnus-agent-cat-prepare-category-field): Replace
-       pp-to-string with gnus-pp-to-string.
+       * gnus-cus.el (gnus-agent-cat-prepare-category-field):
+       Replace pp-to-string with gnus-pp-to-string.
        * gnus-eform.el (gnus-edit-form): Replace pp with gnus-pp.
        * gnus-group.el (gnus-group-make-kiboze-group): Ditto.
        * gnus-msg.el (gnus-debug): Ditto.
 
 2004-08-23  Katsumi Yamaoka  <yamaoka@jpl.org>
 
-       * gnus-art.el (article-display-face, article-display-x-face): Use
-       buffer-read-only.
+       * gnus-art.el (article-display-face, article-display-x-face):
+       Use buffer-read-only.
 
 2004-08-22  Katsumi Yamaoka  <yamaoka@jpl.org>
 
-       * gnus-art.el (article-hide-list-identifiers): Bind
-       inhibit-read-only as t.
+       * gnus-art.el (article-hide-list-identifiers):
+       Bind inhibit-read-only as t.
 
 2004-08-22  Reiner Steib  <Reiner.Steib@gmx.de>
 
        (spam-mark-junk-as-spam-routine): Use it.  Allow to disable
        assigning the spam-mark to new messages.
 
-2004-05-26  Adam Sj\e,Ax\e(Bgren  <asjo@koldfront.dk>  (tiny change)
+2004-05-26  Adam Sjøgren  <asjo@koldfront.dk>  (tiny change)
 
        (spam-ham-copy-or-move-routine): Don't declare `todo' twice.
 
        (spam-crm114-unregister-spam-routine)
        (spam-crm114-register-ham-routine)
        (spam-crm114-unregister-ham-routine): Add CRM114 support.  From
-       asjo@koldfront.dk (Adam Sj\e,Ax\e(Bgren).
+       asjo@koldfront.dk (Adam Sjøgren).
 
        * gnus.el: Add spam-use-crm114.
 
 
 2004-04-25  Jesper Harder  <harder@ifa.au.dk>
 
-       * spam-stat.el (spam-stat-score-buffer): Simplify mapcar usage.
-       Use mapc when appropriate.
-
-       * sieve-manage.el (sieve-manage-open): do.
-
-       * nnweb.el (nnweb-insert-html): do.
-
+       * sieve-manage.el (sieve-manage-open):
+       * nnweb.el (nnweb-insert-html):
        * nnvirtual.el (nnvirtual-catchup-group, nnvirtual-partition-sequence)
-       (nnvirtual-partition-sequence, nnvirtual-create-mapping): do.
-
-       * nnspool.el (nnspool-request-group): do.
-
+       (nnvirtual-partition-sequence, nnvirtual-create-mapping):
+       * nnspool.el (nnspool-request-group):
        * nnrss.el (nnrss-opml-export, nnrss-find-el, nnrss-order-hrefs):
-       do.
-
-       * nnml.el (nnml-request-update-info): do.
-
+       * nnml.el (nnml-request-update-info):
        * nnmh.el (nnmh-request-group, nnmh-request-list-1, nnmh-active-number)
-       (nnmh-request-create-group, nnmh-update-gnus-unreads): do.
-
+       (nnmh-request-create-group, nnmh-update-gnus-unreads):
        * nnimap.el (nnimap-request-close, nnimap-acl-edit)
-       (nnimap-request-set-mark): do.
-
-       * nnfolder.el (nnfolder-request-update-info): do.
-
+       (nnimap-request-set-mark):
+       * nnfolder.el (nnfolder-request-update-info):
        * mm-view.el (mm-pkcs7-signed-magic, mm-pkcs7-enveloped-magic):
-       do.
-
-       * mml.el (mml-destroy-buffers, mml-compute-boundary-1): do.
-
-       * gnus-uu.el (gnus-uu-find-articles-matching): do.
-
+       * mml.el (mml-destroy-buffers, mml-compute-boundary-1):
+       * gnus-uu.el (gnus-uu-find-articles-matching):
        * gnus-topic.el (gnus-topic-check-topology, gnus-topic-remove-group):
-       do.
-
        * gnus-sum.el (gnus-summary-fetch-faq, gnus-read-move-group-name):
-       do.
-
-       * gnus-score.el (gnus-score-load-file, gnus-sort-score-files): do.
-
-       * gnus-nocem.el (gnus-nocem-scan-groups): do.
-
-       * gnus-int.el (gnus-start-news-server): do.
-
+       * gnus-score.el (gnus-score-load-file, gnus-sort-score-files):
+       * gnus-nocem.el (gnus-nocem-scan-groups):
+       * gnus-int.el (gnus-start-news-server):
        * gnus-group.el (gnus-group-make-kiboze-group)
-       (gnus-group-browse-foreign-server): do.
+       (gnus-group-browse-foreign-server):
+       * spam-stat.el (spam-stat-score-buffer): Simplify mapcar usage.
+       Use mapc when appropriate.
 
 2004-04-22  Teodor Zlatanov  <tzz@lifelogs.com>
 
        FIXME: Make separate entries for each person.
 
        From Dan Christensen <jdc@uwo.ca>, asjo@koldfront.dk (Adam
-       Sj\e,Ax\e(Bgren), Wes Hardaker <wes@hardakers.net>, and Michael Shields
+       Sjøgren), Wes Hardaker <wes@hardakers.net>, and Michael Shields
        <shields@msrl.com>:
 
        * spam.el (spam-necessary-extra-headers): Get the extra headers we
        header.
        (spam-summary-score): Add function to  get a numeric score from the
        headers.
-       (spam-generic-score): Fixed function doc, was in wrong place.
+       (spam-generic-score): Fix function doc, was in wrong place.
        (spam-initialize): Take symbols when it's run, and install the
        extra headers that spam-necessary-extra-headers thinks we need.
 
 2004-04-21  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * spam.el (spam-summary-prepare-exit): Add logic and message fix.
-       Reported by bojohan+news@dd.chalmers.se (Johan Bockg\e,Ae\e(Brd).
+       Reported by bojohan+news@dd.chalmers.se (Johan Bockgård).
 
 2004-04-17  Jesper Harder  <harder@ifa.au.dk>
 
        (gnus-article-get-xrefs, gnus-summary-best-group)
        (gnus-summary-next-article, gnus-summary-enter-digest-group)
        (gnus-summary-set-bookmark, gnus-offer-save-summaries)
-       (gnus-summary-update-info, gnus-kill-or-deaden-summary): Use
-       with-current-buffer.
+       (gnus-summary-update-info, gnus-kill-or-deaden-summary):
+       Use with-current-buffer.
 
 2004-04-16  Teodor Zlatanov  <tzz@lifelogs.com>
 
        (gnus-group-list-active): Let the agent store a server's active
        list if currently plugged.
 
-       * gnus-int.el (gnus-request-delete-group): Use
-       gnus-cache-delete-group and gnus-agent-delete-group to keep the
+       * gnus-int.el (gnus-request-delete-group):
+       Use gnus-cache-delete-group and gnus-agent-delete-group to keep the
        local disk in sync with the server.
-       (gnus-request-rename-group): Use
-       gnus-cache-rename-group and gnus-agent-rename-group to keep the
+       (gnus-request-rename-group):
+       Use gnus-cache-rename-group and gnus-agent-rename-group to keep the
        local disk in sync with the server.
 
-       * gnus-start.el (gnus-get-unread-articles): Cosmetic
-       simplification to logic.
+       * gnus-start.el (gnus-get-unread-articles):
+       Cosmetic simplification to logic.
 
        * gnus-util.el (gnus-rename-file): New function.
 
 
        * gnus-score.el (gnus-score-edit-all-score): Fix prototype.
        Invoke gnus-score-mode.  Reported by
-       bojohan+news@dd.chalmers.se (Johan Bockg\e,Ae\e(Brd).
+       bojohan+news@dd.chalmers.se (Johan Bockgård).
 
        * gnus-range.el (gnus-compress-sequence): Doc fix.  Suggested by
        Jim Blandy <jimb@redhat.com> (tiny change).
 
 2004-01-11  Jesper Harder  <harder@ifa.au.dk>
 
-       * gnus.sum.el (gnus-remove-odd-characters): Don't cons two new
-       strings.
+       * gnus.sum.el (gnus-remove-odd-characters): Don't cons two new strings.
 
        * mm-util.el (mm-subst-char-in-string): Support inplace.
 
 
 2004-01-10  Jesper Harder  <harder@ifa.au.dk>
 
-       * gnus-start.el (gnus-subscribe-newsgroup, gnus-start-draft-setup)
-       (gnus-group-change-level, gnus-kill-newsgroup)
-       (gnus-check-bogus-newsgroups, gnus-get-unread-articles-in-group)
-       (gnus-get-unread-articles, gnus-make-articles-unread)
-       (gnus-make-ascending-articles-unread): Use accessor
-       macros (gnus-group-entry, gnus-group-unread, gnus-info-marks etc.)
-       to get group information for improved readability.
-
-       * gnus-srvr.el (gnus-browse-unsubscribe-group): do.
-
-       * gnus-soup.el (gnus-soup-group-brew): do.
-
-       * gnus-msg.el (gnus-put-message): do.
-
-       * gnus-move.el (gnus-group-move-group-to-server): do.
-
-       * gnus-kill.el (gnus-batch-score): do.
-
+       * gnus-srvr.el (gnus-browse-unsubscribe-group):
+       * gnus-soup.el (gnus-soup-group-brew):
+       * gnus-msg.el (gnus-put-message):
+       * gnus-move.el (gnus-group-move-group-to-server):
+       * gnus-kill.el (gnus-batch-score):
        * gnus-group.el (gnus-group-prepare-flat, gnus-group-delete-group)
        (gnus-group-update-group-line, gnus-group-insert-group-line-info)
        (gnus-group-update-group, gnus-group-read-group)
        (gnus-group-sort-by-unread, gnus-group-catchup)
        (gnus-group-unsubscribe-group, gnus-group-kill-group)
        (gnus-group-yank-group, gnus-group-set-info)
-       (gnus-group-list-groups): do.
-
-       * gnus.el (gnus-generate-new-group-name): do.
-
-       * gnus-delay.el (gnus-delay-send-queue): do.
-
-       * nnvirtual.el (nnvirtual-catchup-group): do.
-
+       (gnus-group-list-groups):
+       * gnus.el (gnus-generate-new-group-name):
+       * gnus-delay.el (gnus-delay-send-queue):
+       * nnvirtual.el (nnvirtual-catchup-group):
        * nnkiboze.el (nnkiboze-generate-group, nnkiboze-generate-group):
-       do.
-
        * gnus-topic.el (gnus-topic-find-groups, gnus-topic-clean-alist)
-       (gnus-group-prepare-topics, gnus-topic-check-topology): do.
-
+       (gnus-group-prepare-topics, gnus-topic-check-topology):
        * gnus-sum.el (gnus-update-read-articles, gnus-select-newsgroup)
        (gnus-mark-xrefs-as-read, gnus-compute-read-articles)
        (gnus-summary-walk-group-buffer, gnus-summary-move-article)
-       (gnus-group-make-articles-read): do.
+       (gnus-group-make-articles-read):
+       * gnus-start.el (gnus-subscribe-newsgroup, gnus-start-draft-setup)
+       (gnus-group-change-level, gnus-kill-newsgroup)
+       (gnus-check-bogus-newsgroups, gnus-get-unread-articles-in-group)
+       (gnus-get-unread-articles, gnus-make-articles-unread)
+       (gnus-make-ascending-articles-unread): Use accessor
+       macros (gnus-group-entry, gnus-group-unread, gnus-info-marks etc.)
+       to get group information for improved readability.
+
 
 2004-01-09  Jesper Harder  <harder@ifa.au.dk>
 
 
        * nnheaderxm.el: Remove definition of run-at-time.
 
-2004-01-05  Karl Pfl\e,Ad\e(Bsterer  <sigurd@12move.de>  (tiny change)
+2004-01-05  Karl Pflästerer  <sigurd@12move.de>  (tiny change)
 
        * mml.el (mml-minibuffer-read-disposition): Show attachment type
        in prompt.
@@ -12932,7 +13059,7 @@ See ChangeLog.2 for earlier changes.
   Boston, MA 02110-1301, USA.
 
 ;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
 ;; fill-column: 79
 ;; add-log-time-zone-rule: t
 ;; End:
index a5821b3..8dc1fc1 100644 (file)
        performed by gnus-agent-request-article.
        * gnus-cus.el (gnus-agent-parameters): New variable.  List of
        customizable group/topic parameters that regulate the agent.
-       (gnus-group-customize): Uses gnus-agent-parameters.  Replaced
+       (gnus-group-customize): Uses gnus-agent-parameters.  Replace
        kill-buffer with gnus-kill-buffer to remove the killed buffer from
        the list of gnus buffers.
        (gnus-trim-whitespace): Removes leading and trailing whitespace
        from multiline strings.
-       (gnus-agent-cat-prepare-category-field,
-       gnus-agent-customize-category): Constructs a category
+       (gnus-agent-cat-prepare-category-field)
+       (gnus-agent-customize-category): Constructs a category
        customization buffer.
-       * gnus-int.el (gnus-retrieve-headers,
-       gnus-request-expire-articles): No longer checks gnus-agent-cache
+       * gnus-int.el (gnus-retrieve-headers)
+       (gnus-request-expire-articles): No longer checks gnus-agent-cache
        as it is handled internally by the agent.
        (gnus-request-head, gnus-request-body): Conditional checks
        surrounding gnus-agent-request-article removed; now performed by
        gnus-agent-request-article.
 
-       * gnus-start.el (): Added defvar statements to resolve compilation
+       * gnus-start.el (): Add defvar statements to resolve compilation
        warnings.
        (gnus-long-file-names): New function.  Isolates platform dependent
        msdos-long-file-names.
        errors when .newsrc.eld is huge.
        (gnus-save-newsrc-file): Uses new
        gnus-save-startup-file-via-temp-buffer.
-       (gnus-gnus-to-quick-newsrc-format): Rewritten to write to
+       (gnus-gnus-to-quick-newsrc-format): Rewrite to write to
        standard-output.
-       (gnus-display-time-event-handler): Changed to alias from a defun
+       (gnus-display-time-event-handler): Change to alias from a defun
        to avoid a compile-time warning when display-time-event-handler is
        not defined.
-       * gnus-util.el (gnus-with-output-to-file): New macro.  Binds
-       standard-output such that prin1 and princ will write directly to a
-       file.
+       * gnus-util.el (gnus-with-output-to-file): New macro.
+       Binds standard-output such that prin1 and princ will write directly
+       to a file.
 
-       * gnus.el (gnus-agent-cache): Expanded documentation.
-       (gnus-summary-high-undownloaded-face): Removed second bold keyword
+       * gnus.el (gnus-agent-cache): Expand documentation.
+       (gnus-summary-high-undownloaded-face): Remove second bold keyword
        so that this face is actually bold.
 
        * nnkiboze.el (nnkiboze-request-article): Only use the cache when
 
 2002-04-19  Jesper Harder  <harder@ifa.au.dk>
 
-       * nnkiboze.el (nnkiboze-request-scan): Call
-       nnkiboze-possibly-change-group.
+       * nnkiboze.el (nnkiboze-request-scan):
+       Call nnkiboze-possibly-change-group.
        (nnkiboze-generate-group): Use mm-with-unibyte to avoid encoding
        problems.
        (nnkiboze-generate-group): Set newsrc to the *highest* article
index 7b83c97..d6045d0 100644 (file)
@@ -222,8 +222,8 @@ If HEADER-ONLY is non-nil only decode header and return filename."
        (save-excursion
          (goto-char start)
          (when (re-search-forward binhex-begin-line end t)
-           (let (default-enable-multibyte-characters)
-             (setq work-buffer (generate-new-buffer " *binhex-work*")))
+            (setq work-buffer (generate-new-buffer " *binhex-work*"))
+            (with-current-buffer work-buffer (set-buffer-multibyte nil))
            (beginning-of-line)
            (setq bits 0 counter 0)
            (while tmp
@@ -329,5 +329,5 @@ If HEADER-ONLY is non-nil only decode header and return filename."
 
 (provide 'binhex)
 
-;;; arch-tag: 8476badd-1e76-4f1d-a640-f9a38c72eed8
+;; arch-tag: 8476badd-1e76-4f1d-a640-f9a38c72eed8
 ;;; binhex.el ends here
index e42f8c6..af30c07 100644 (file)
@@ -249,5 +249,5 @@ it fails."
 
 (provide 'canlock)
 
-;;; arch-tag: 033c4f09-b9f1-459d-bd0d-254430283f78
+;; arch-tag: 033c4f09-b9f1-459d-bd0d-254430283f78
 ;;; canlock.el ends here
index 2f81ab0..a548569 100644 (file)
@@ -33,6 +33,7 @@ Requires the external programs `uncompface', and `icontopbm'.  On a
 GNU/Linux system these might be in packages with names like `compface'
 or `faces-xface' and `netpbm' or `libgr-progs', for instance."
   (with-temp-buffer
+    (unless (featurep 'xemacs) (set-buffer-multibyte nil))
     (insert face)
     (let ((coding-system-for-read 'raw-text)
          ;; At least "icontopbm" doesn't work with Windows because
@@ -59,5 +60,5 @@ or `faces-xface' and `netpbm' or `libgr-progs', for instance."
 
 (provide 'compface)
 
-;;; arch-tag: f9c78e84-98c0-4142-9682-8ba4cf4c3441
+;; arch-tag: f9c78e84-98c0-4142-9682-8ba4cf4c3441
 ;;; compface.el ends here
index 85f508c..23d3fdd 100644 (file)
@@ -478,5 +478,5 @@ NODISPLAY is non-nil, don't redisplay the article buffer."
 ;; coding: iso-8859-1
 ;; End:
 
-;;; arch-tag: 5f895cc9-51a9-487c-b42e-28844d79eb73
+;; arch-tag: 5f895cc9-51a9-487c-b42e-28844d79eb73
 ;;; deuglify.el ends here
index 1675543..c271a81 100644 (file)
@@ -192,5 +192,5 @@ nil for domain/class/type queries that results in no data."
 
 (provide 'dig)
 
-;;; arch-tag: 1d61726e-9400-4013-9ae7-4035e0c7f7d6
+;; arch-tag: 1d61726e-9400-4013-9ae7-4035e0c7f7d6
 ;;; dig.el ends here
index f8f4617..cb859f9 100644 (file)
@@ -102,11 +102,11 @@ If nil, /etc/resolv.conf will be consulted.")
   (dns-write-bytes 0))
 
 (defun dns-read-string-name (string buffer)
-  (let (default-enable-multibyte-characters)
-    (with-temp-buffer
-      (insert string)
-      (goto-char (point-min))
-      (dns-read-name buffer))))
+  (with-temp-buffer
+    (set-buffer-multibyte nil)
+    (insert string)
+    (goto-char (point-min))
+    (dns-read-name buffer)))
 
 (defun dns-read-name (&optional buffer)
   (let ((ended nil)
@@ -137,6 +137,7 @@ If nil, /etc/resolv.conf will be consulted.")
   "Write a DNS packet according to SPEC.
 If TCP-P, the first two bytes of the package with be the length field."
   (with-temp-buffer
+    (set-buffer-multibyte nil)
     (dns-write-bytes (dns-get 'id spec) 2)
     (dns-write-bytes
      (logior
@@ -186,72 +187,72 @@ If TCP-P, the first two bytes of the package with be the length field."
     (buffer-string)))
 
 (defun dns-read (packet)
-  (let (default-enable-multibyte-characters)
-    (with-temp-buffer
-      (let ((spec nil)
-            queries answers authorities additionals)
-        (insert packet)
-        (goto-char (point-min))
-        (push (list 'id (dns-read-bytes 2)) spec)
-        (let ((byte (dns-read-bytes 1)))
-          (push (list 'response-p (if (zerop (logand byte (lsh 1 7))) nil t))
-                spec)
-          (let ((opcode (logand byte (lsh 7 3))))
-            (push (list 'opcode
-                        (cond ((eq opcode 0) 'query)
-                              ((eq opcode 1) 'inverse-query)
-                              ((eq opcode 2) 'status)))
-                  spec))
-          (push (list 'authoritative-p (if (zerop (logand byte (lsh 1 2)))
-                                           nil t)) spec)
-          (push (list 'truncated-p (if (zerop (logand byte (lsh 1 2))) nil t))
-                spec)
-          (push (list 'recursion-desired-p
-                      (if (zerop (logand byte (lsh 1 0))) nil t)) spec))
-        (let ((rc (logand (dns-read-bytes 1) 15)))
-          (push (list 'response-code
-                      (cond
-                       ((eq rc 0) 'no-error)
-                       ((eq rc 1) 'format-error)
-                       ((eq rc 2) 'server-failure)
-                       ((eq rc 3) 'name-error)
-                       ((eq rc 4) 'not-implemented)
-                       ((eq rc 5) 'refused)))
+  (with-temp-buffer
+    (set-buffer-multibyte nil)
+    (let ((spec nil)
+          queries answers authorities additionals)
+      (insert packet)
+      (goto-char (point-min))
+      (push (list 'id (dns-read-bytes 2)) spec)
+      (let ((byte (dns-read-bytes 1)))
+        (push (list 'response-p (if (zerop (logand byte (lsh 1 7))) nil t))
+              spec)
+        (let ((opcode (logand byte (lsh 7 3))))
+          (push (list 'opcode
+                      (cond ((eq opcode 0) 'query)
+                            ((eq opcode 1) 'inverse-query)
+                            ((eq opcode 2) 'status)))
                 spec))
-        (setq queries (dns-read-bytes 2))
-        (setq answers (dns-read-bytes 2))
-        (setq authorities (dns-read-bytes 2))
-        (setq additionals (dns-read-bytes 2))
-        (let ((qs nil))
-          (dotimes (i queries)
+        (push (list 'authoritative-p (if (zerop (logand byte (lsh 1 2)))
+                                         nil t)) spec)
+        (push (list 'truncated-p (if (zerop (logand byte (lsh 1 2))) nil t))
+              spec)
+        (push (list 'recursion-desired-p
+                    (if (zerop (logand byte (lsh 1 0))) nil t)) spec))
+      (let ((rc (logand (dns-read-bytes 1) 15)))
+        (push (list 'response-code
+                    (cond
+                     ((eq rc 0) 'no-error)
+                     ((eq rc 1) 'format-error)
+                     ((eq rc 2) 'server-failure)
+                     ((eq rc 3) 'name-error)
+                     ((eq rc 4) 'not-implemented)
+                     ((eq rc 5) 'refused)))
+              spec))
+      (setq queries (dns-read-bytes 2))
+      (setq answers (dns-read-bytes 2))
+      (setq authorities (dns-read-bytes 2))
+      (setq additionals (dns-read-bytes 2))
+      (let ((qs nil))
+        (dotimes (i queries)
+          (push (list (dns-read-name)
+                      (list 'type (dns-inverse-get (dns-read-bytes 2)
+                                                   dns-query-types))
+                      (list 'class (dns-inverse-get (dns-read-bytes 2)
+                                                    dns-classes)))
+                qs))
+        (push (list 'queries qs) spec))
+      (dolist (slot '(answers authorities additionals))
+        (let ((qs nil)
+              type)
+          (dotimes (i (symbol-value slot))
             (push (list (dns-read-name)
-                        (list 'type (dns-inverse-get (dns-read-bytes 2)
-                                                     dns-query-types))
+                        (list 'type
+                              (setq type (dns-inverse-get (dns-read-bytes 2)
+                                                          dns-query-types)))
                         (list 'class (dns-inverse-get (dns-read-bytes 2)
-                                                      dns-classes)))
+                                                      dns-classes))
+                        (list 'ttl (dns-read-bytes 4))
+                        (let ((length (dns-read-bytes 2)))
+                          (list 'data
+                                (dns-read-type
+                                 (buffer-substring
+                                  (point)
+                                  (progn (forward-char length) (point)))
+                                 type))))
                   qs))
-          (push (list 'queries qs) spec))
-        (dolist (slot '(answers authorities additionals))
-          (let ((qs nil)
-                type)
-            (dotimes (i (symbol-value slot))
-              (push (list (dns-read-name)
-                          (list 'type
-                                (setq type (dns-inverse-get (dns-read-bytes 2)
-                                                            dns-query-types)))
-                          (list 'class (dns-inverse-get (dns-read-bytes 2)
-                                                        dns-classes))
-                          (list 'ttl (dns-read-bytes 4))
-                          (let ((length (dns-read-bytes 2)))
-                            (list 'data
-                                  (dns-read-type
-                                   (buffer-substring
-                                    (point)
-                                    (progn (forward-char length) (point)))
-                                   type))))
-                    qs))
-            (push (list slot qs) spec)))
-        (nreverse spec)))))
+          (push (list slot qs) spec)))
+      (nreverse spec))))
 
 (defun dns-read-int32 ()
   ;; Full 32 bit Integers can't be handled by Emacs.  If we use
@@ -263,40 +264,40 @@ If TCP-P, the first two bytes of the package with be the length field."
   (let ((buffer (current-buffer))
        (point (point)))
     (prog1
-        (let (default-enable-multibyte-characters)
-          (with-temp-buffer
-            (insert string)
-            (goto-char (point-min))
-            (cond
-             ((eq type 'A)
-              (let ((bytes nil))
-                (dotimes (i 4)
-                  (push (dns-read-bytes 1) bytes))
-                (mapconcat 'number-to-string (nreverse bytes) ".")))
-             ((eq type 'AAAA)
-              (let (hextets)
-                (dotimes (i 8)
-                  (push (dns-read-bytes 2) hextets))
-                (mapconcat (lambda (n) (format "%x" n))
-                           (nreverse hextets) ":")))
-             ((eq type 'SOA)
-              (list (list 'mname (dns-read-name buffer))
-                    (list 'rname (dns-read-name buffer))
-                    (list 'serial (dns-read-int32))
-                    (list 'refresh (dns-read-int32))
-                    (list 'retry (dns-read-int32))
-                    (list 'expire (dns-read-int32))
-                    (list 'minimum (dns-read-int32))))
-             ((eq type 'SRV)
-              (list (list 'priority (dns-read-bytes 2))
-                    (list 'weight (dns-read-bytes 2))
-                    (list 'port (dns-read-bytes 2))
-                    (list 'target (dns-read-name buffer))))
-             ((eq type 'MX)
-              (cons (dns-read-bytes 2) (dns-read-name buffer)))
-             ((or (eq type 'CNAME) (eq type 'NS) (eq type 'PTR))
-              (dns-read-string-name string buffer))
-             (t string))))
+        (with-temp-buffer
+          (set-buffer-multibyte nil)
+          (insert string)
+          (goto-char (point-min))
+          (cond
+           ((eq type 'A)
+            (let ((bytes nil))
+              (dotimes (i 4)
+                (push (dns-read-bytes 1) bytes))
+              (mapconcat 'number-to-string (nreverse bytes) ".")))
+           ((eq type 'AAAA)
+            (let (hextets)
+              (dotimes (i 8)
+                (push (dns-read-bytes 2) hextets))
+              (mapconcat (lambda (n) (format "%x" n))
+                         (nreverse hextets) ":")))
+           ((eq type 'SOA)
+            (list (list 'mname (dns-read-name buffer))
+                  (list 'rname (dns-read-name buffer))
+                  (list 'serial (dns-read-int32))
+                  (list 'refresh (dns-read-int32))
+                  (list 'retry (dns-read-int32))
+                  (list 'expire (dns-read-int32))
+                  (list 'minimum (dns-read-int32))))
+           ((eq type 'SRV)
+            (list (list 'priority (dns-read-bytes 2))
+                  (list 'weight (dns-read-bytes 2))
+                  (list 'port (dns-read-bytes 2))
+                  (list 'target (dns-read-name buffer))))
+           ((eq type 'MX)
+            (cons (dns-read-bytes 2) (dns-read-name buffer)))
+           ((or (eq type 'CNAME) (eq type 'NS) (eq type 'PTR))
+            (dns-read-string-name string buffer))
+           (t string)))
       (goto-char point))))
 
 (defun dns-parse-resolv-conf ()
@@ -378,53 +379,53 @@ If REVERSEP, look up an IP address."
 
   (if (not dns-servers)
       (message "No DNS server configuration found")
-    (let (default-enable-multibyte-characters)
-      (with-temp-buffer
-        (let ((process (condition-case ()
-                           (dns-make-network-process (car dns-servers))
-                         (error
-                          (message
-                           "dns: Got an error while trying to talk to %s"
-                           (car dns-servers))
-                          nil)))
-              (tcp-p (and (not (fboundp 'make-network-process))
-                          (not (featurep 'xemacs))))
-              (step 100)
-              (times (* dns-timeout 1000))
-              (id (random 65000)))
-          (when process
-            (process-send-string
-             process
-             (dns-write `((id ,id)
-                          (opcode query)
-                          (queries ((,name (type ,type))))
-                          (recursion-desired-p t))
-                        tcp-p))
-            (while (and (zerop (buffer-size))
-                        (> times 0))
-              (sit-for (/ step 1000.0))
-              (accept-process-output process 0 step)
-              (setq times (- times step)))
-            (condition-case nil
-                (delete-process process)
-              (error nil))
-            (when (and tcp-p
-                       (>= (buffer-size) 2))
-              (goto-char (point-min))
-              (delete-region (point) (+ (point) 2)))
-            (when (and (>= (buffer-size) 2)
-                       ;; We had a time-out.
-                       (> times 0))
-              (let ((result (dns-read (buffer-string))))
-                (if fullp
-                    result
-                  (let ((answer (car (dns-get 'answers result))))
-                    (when (eq type (dns-get 'type answer))
-                      (if (eq type 'TXT)
-                          (dns-get-txt-answer (dns-get 'answers result))
-                        (dns-get 'data answer)))))))))))))
+    (with-temp-buffer
+      (set-buffer-multibyte nil)
+      (let ((process (condition-case ()
+                         (dns-make-network-process (car dns-servers))
+                       (error
+                        (message
+                         "dns: Got an error while trying to talk to %s"
+                         (car dns-servers))
+                        nil)))
+            (tcp-p (and (not (fboundp 'make-network-process))
+                        (not (featurep 'xemacs))))
+            (step 100)
+            (times (* dns-timeout 1000))
+            (id (random 65000)))
+        (when process
+          (process-send-string
+           process
+           (dns-write `((id ,id)
+                        (opcode query)
+                        (queries ((,name (type ,type))))
+                        (recursion-desired-p t))
+                      tcp-p))
+          (while (and (zerop (buffer-size))
+                      (> times 0))
+            (sit-for (/ step 1000.0))
+            (accept-process-output process 0 step)
+            (setq times (- times step)))
+          (condition-case nil
+              (delete-process process)
+            (error nil))
+          (when (and tcp-p
+                     (>= (buffer-size) 2))
+            (goto-char (point-min))
+            (delete-region (point) (+ (point) 2)))
+          (when (and (>= (buffer-size) 2)
+                     ;; We had a time-out.
+                     (> times 0))
+            (let ((result (dns-read (buffer-string))))
+              (if fullp
+                  result
+                (let ((answer (car (dns-get 'answers result))))
+                  (when (eq type (dns-get 'type answer))
+                    (if (eq type 'TXT)
+                        (dns-get-txt-answer (dns-get 'answers result))
+                      (dns-get 'data answer))))))))))))
 
 (provide 'dns)
 
-;;; arch-tag: d0edd0c4-4cce-4538-ae92-06c3356ee80a
+;; arch-tag: d0edd0c4-4cce-4538-ae92-06c3356ee80a
 ;;; dns.el ends here
index 39b1789..6fc8da5 100644 (file)
@@ -231,5 +231,5 @@ If N is negative, move backward instead."
 
 (run-hooks 'earcon-load-hook)
 
-;;; arch-tag: 844dfeea-980c-4ed0-907f-a30bf139691c
+;; arch-tag: 844dfeea-980c-4ed0-907f-a30bf139691c
 ;;; earcon.el ends here
index ea1017a..3598318 100644 (file)
@@ -223,5 +223,5 @@ RFC 2646 suggests 66 characters for readability."
 
 (provide 'flow-fill)
 
-;;; arch-tag: addc0040-bc53-4f17-b4bc-1eb44eed6f0b
+;; arch-tag: addc0040-bc53-4f17-b4bc-1eb44eed6f0b
 ;;; flow-fill.el ends here
index fe3f821..d5a600e 100644 (file)
@@ -78,5 +78,5 @@ starting with a character."
 
 (provide 'format-spec)
 
-;;; arch-tag: c22d49cf-d167-445d-b7f1-2504d4173f53
+;; arch-tag: c22d49cf-d167-445d-b7f1-2504d4173f53
 ;;; format-spec.el ends here
index d6b4c11..b1b027e 100644 (file)
@@ -4226,5 +4226,5 @@ modified."
 
 (provide 'gnus-agent)
 
-;;; arch-tag: b0ba4afc-5229-4cee-ad25-9956daa4e91e
+;; arch-tag: b0ba4afc-5229-4cee-ad25-9956daa4e91e
 ;;; gnus-agent.el ends here
index b77751a..b9f613a 100644 (file)
@@ -1703,11 +1703,6 @@ Initialized from `text-mode-syntax-table.")
 
 (defvar gnus-save-article-buffer nil)
 
-(defvar gnus-article-mode-line-format-alist
-  (nconc '((?w (gnus-article-wash-status) ?s)
-          (?m (gnus-article-mime-part-status) ?s))
-        gnus-summary-mode-line-format-alist))
-
 (defvar gnus-number-of-articles-to-be-saved nil)
 
 (defvar gnus-inhibit-hiding nil)
@@ -4790,10 +4785,9 @@ and `gnus-mime-delete-part', and not provided at run-time normally."
   ;; Useful if file has already been saved to disk
   (interactive
    (list
-    (mm-with-multibyte
-      (read-file-name "Replace MIME part with file: "
-                     (or mm-default-directory default-directory)
-                     nil nil))))
+    (read-file-name "Replace MIME part with file: "
+                    (or mm-default-directory default-directory)
+                    nil nil)))
   (gnus-mime-save-part-and-strip file))
 
 (defun gnus-mime-save-part-and-strip (&optional file)
@@ -6591,7 +6585,13 @@ If given a prefix, show the hidden text instead."
                 (with-current-buffer gnus-original-article-buffer
                   (and (equal (car gnus-original-article) group)
                        (eq (cdr gnus-original-article) article))))
-           (insert-buffer-substring gnus-original-article-buffer)
+            ;; `insert-buffer-substring' would incorrectly use the
+            ;; equivalent of string-make-multibyte which amount to decoding
+            ;; with locale-coding-system, causing failure of
+            ;; subsequent decoding.
+            (insert (mm-string-to-multibyte
+                     (with-current-buffer gnus-original-article-buffer
+                       (buffer-substring (point-min) (point-max)))))
            'article)
           ;; Check the backlog.
           ((and gnus-keep-backlog
index 329a7ac..e3b5b4a 100644 (file)
@@ -374,5 +374,5 @@ It should return non-nil if the article is to be prefetched."
 
 (provide 'gnus-async)
 
-;;; arch-tag: fee61de5-3ea2-4de6-8578-2f90ce89391d
+;; arch-tag: fee61de5-3ea2-4de6-8578-2f90ce89391d
 ;;; gnus-async.el ends here
index 95c7d8d..cd0385e 100644 (file)
 
 (run-hooks 'gnus-audio-load-hook)
 
-;;; arch-tag: 6f129e78-3416-4fc9-973f-6cf5ac8d654b
+;; arch-tag: 6f129e78-3416-4fc9-973f-6cf5ac8d654b
 ;;; gnus-audio.el ends here
index 2b39cbe..a446548 100644 (file)
 
 (provide 'gnus-bcklg)
 
-;;; arch-tag: 66259e56-505a-4bba-8a0d-3552c5b94e39
+;; arch-tag: 66259e56-505a-4bba-8a0d-3552c5b94e39
 ;;; gnus-bcklg.el ends here
index 5cec35d..076ac52 100644 (file)
@@ -215,13 +215,13 @@ So the cdr of each bookmark is an alist too.")
       (setq gnus-bookmark-alist
            (cons
             (list (gnus-bookmark-remove-properties bmk-name)
-                  (gnus-bookmark-make-cell
+                  (gnus-bookmark-make-record
                    group message-id author date subject annotation))
             gnus-bookmark-alist))))
   (gnus-bookmark-bmenu-surreptitiously-rebuild-list)
   (gnus-bookmark-write-file))
 
-(defun gnus-bookmark-make-cell
+(defun gnus-bookmark-make-record
   (group message-id author date subject annotation)
   "Return the record part of a new bookmark, given GROUP MESSAGE-ID AUTHOR DATE SUBJECT and ANNOTATION."
   (let ((the-record
@@ -296,9 +296,9 @@ So the cdr of each bookmark is an alist too.")
   (let* ((bookmark (or bmk-name
          (completing-read "Jump to bookmarked article: "
                           gnus-bookmark-alist)))
-        (bmk-cell (cadr (assoc bookmark gnus-bookmark-alist)))
-        (group (cdr (assoc 'group bmk-cell)))
-        (message-id (cdr (assoc 'message-id bmk-cell))))
+        (bmk-record (cadr (assoc bookmark gnus-bookmark-alist)))
+        (group (cdr (assoc 'group bmk-record)))
+        (message-id (cdr (assoc 'message-id bmk-record))))
     (when group
       (unless (get-buffer gnus-group-buffer)
        (gnus-no-server))
index 802d685..8aed047 100644 (file)
@@ -920,5 +920,5 @@ supported."
 
 (provide 'gnus-cache)
 
-;;; arch-tag: 05a79442-8c58-4e65-bd0a-3cbb1b89a33a
+;; arch-tag: 05a79442-8c58-4e65-bd0a-3cbb1b89a33a
 ;;; gnus-cache.el ends here
index 64c0864..b8ac424 100644 (file)
@@ -1238,5 +1238,5 @@ is turned on."
 ;; coding: iso-8859-1
 ;; End:
 
-;;; arch-tag: 1997b044-6067-471e-8c8f-dc903093098a
+;; arch-tag: 1997b044-6067-471e-8c8f-dc903093098a
 ;;; gnus-cite.el ends here
index 06515eb..238e36a 100644 (file)
@@ -1120,5 +1120,5 @@ articles in the thread.
 
 (provide 'gnus-cus)
 
-;;; arch-tag: a37c285a-49bc-4235-8244-804536effeaf
+;; arch-tag: a37c285a-49bc-4235-8244-804536effeaf
 ;;; gnus-cus.el ends here
index c4b764f..53100ea 100644 (file)
@@ -321,5 +321,5 @@ minutes, the connection is closed."
 
 (provide 'gnus-demon)
 
-;;; arch-tag: 8dd5cd3d-6ae4-46b4-9b15-f5fca09fd392
+;; arch-tag: 8dd5cd3d-6ae4-46b4-9b15-f5fca09fd392
 ;;; gnus-demon.el ends here
index cd2239a..183214f 100644 (file)
@@ -403,5 +403,5 @@ If ARG (or prefix) is non-nil, force prompting for all fields."
 
 (provide 'gnus-diary)
 
-;;; arch-tag: 98467e70-337e-4ddc-b92d-45d403ff1b4b
+;; arch-tag: 98467e70-337e-4ddc-b92d-45d403ff1b4b
 ;;; gnus-diary.el ends here
index 4f29fe8..3e496c3 100644 (file)
@@ -258,5 +258,5 @@ file to save in."
 
 (provide 'gnus-dired)
 
-;;; arch-tag: 44737731-e445-4638-a31e-713c7590ec76
+;; arch-tag: 44737731-e445-4638-a31e-713c7590ec76
 ;;; gnus-dired.el ends here
index 9148ca9..d1d3c9f 100644 (file)
@@ -329,5 +329,5 @@ Obeys the standard process/prefix convention."
 
 (provide 'gnus-draft)
 
-;;; arch-tag: 3d92af58-8c97-4a5c-9db4-a98e85198022
+;; arch-tag: 3d92af58-8c97-4a5c-9db4-a98e85198022
 ;;; gnus-draft.el ends here
index 73b183f..160952d 100644 (file)
@@ -161,5 +161,5 @@ seen in the same session."
 
 (provide 'gnus-dup)
 
-;;; arch-tag: 903e94db-7b00-4d19-83ee-cf34a81fa5fb
+;; arch-tag: 903e94db-7b00-4d19-83ee-cf34a81fa5fb
 ;;; gnus-dup.el ends here
index ae89d4e..a351817 100644 (file)
@@ -132,5 +132,5 @@ The optional LAYOUT overrides the `edit-form' window layout."
 
 (provide 'gnus-eform)
 
-;;; arch-tag: ef50678c-2c28-49ef-affc-e53b3b2c0bf6
+;; arch-tag: ef50678c-2c28-49ef-affc-e53b3b2c0bf6
 ;;; gnus-eform.el ends here
index 337fc38..594b592 100644 (file)
   mark-active) ; aliased to region-exists-p in XEmacs.
 
 (autoload 'gnus-alive-p "gnus-util")
+(autoload 'mm-disable-multibyte "mm-util")
 
 (defun gnus-x-splash ()
   "Show a splash screen using a pixmap in the current buffer."
     (sit-for 0) ;; Necessary for measuring the window size correctly.
     (when (and file
               (ignore-errors
-               (let ((coding-system-for-read 'raw-text)
-                     default-enable-multibyte-characters)
+               (let ((coding-system-for-read 'raw-text))
                  (with-temp-buffer
+                    (mm-disable-multibyte)
                    (insert-file-contents file)
                    (goto-char (point-min))
                    (setq pixmap (read (current-buffer)))))))
 
 (provide 'gnus-ems)
 
-;;; arch-tag: e7360b45-14b5-4171-aa39-69a44aed3cdb
+;; arch-tag: e7360b45-14b5-4171-aa39-69a44aed3cdb
 ;;; gnus-ems.el ends here
index 72627f2..b4d71b1 100644 (file)
@@ -217,8 +217,7 @@ colors of the displayed X-Faces."
 (defun gnus-display-x-face-in-from (data)
   "Display the X-Face DATA in the From header."
   (require 'gnus-art)
-  (let ((default-enable-multibyte-characters nil)
-       pbm)
+  (let (pbm)
     (when (or (gnus-image-type-available-p 'xface)
              (and (gnus-image-type-available-p 'pbm)
                   (setq pbm (uncompface data))))
@@ -293,5 +292,5 @@ colors of the displayed X-Faces."
 
 (provide 'gnus-fun)
 
-;;; arch-tag: 9d000a69-15cc-4491-9dc0-4627484f50c1
+;; arch-tag: 9d000a69-15cc-4491-9dc0-4627484f50c1
 ;;; gnus-fun.el ends here
index 219292b..c40948c 100644 (file)
@@ -1188,8 +1188,8 @@ The following commands are available:
       (goto-char (point-min))
       (setq gnus-group-mark-positions
            (list (cons 'process (and (search-forward
-                                      (mm-string-as-multibyte "\200") nil t)
-                                     (- (point) 2))))))))
+                                      (mm-string-to-multibyte "\200") nil t)
+                                     (- (point) (point-min) 1))))))))
 
 (defun gnus-mouse-pick-group (e)
   "Enter the group under the mouse pointer."
@@ -4791,5 +4791,5 @@ Compacting group %s... (this may take a long time)"
 
 (provide 'gnus-group)
 
-;;; arch-tag: 2eb5440f-0bca-4091-814c-e37817536af6
+;; arch-tag: 2eb5440f-0bca-4091-814c-e37817536af6
 ;;; gnus-group.el ends here
index 1246566..6e09e0c 100644 (file)
@@ -718,5 +718,5 @@ If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned."
 
 (provide 'gnus-int)
 
-;;; arch-tag: bbc90087-9b7f-4017-a92c-3abf180ac86d
+;; arch-tag: bbc90087-9b7f-4017-a92c-3abf180ac86d
 ;;; gnus-int.el ends here
index 5c52806..698803a 100644 (file)
@@ -717,5 +717,5 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score"
 
 (provide 'gnus-kill)
 
-;;; arch-tag: b30c0f53-df1a-490b-b81e-17b13474f395
+;; arch-tag: b30c0f53-df1a-490b-b81e-17b13474f395
 ;;; gnus-kill.el ends here
index 78ced8e..3f529cf 100644 (file)
 
 (provide 'gnus-logic)
 
-;;; arch-tag: 9651a100-4a59-4b69-a55b-e511e67c0f8d
+;; arch-tag: 9651a100-4a59-4b69-a55b-e511e67c0f8d
 ;;; gnus-logic.el ends here
index 1ecb125..f8b006d 100644 (file)
@@ -111,5 +111,5 @@ Otherwise, it is like +news/group."
 
 (provide 'gnus-mh)
 
-;;; arch-tag: 2d5696d3-b363-48e5-8749-c256be56acca
+;; arch-tag: 2d5696d3-b363-48e5-8749-c256be56acca
 ;;; gnus-mh.el ends here
index 7158d66..300dd9d 100644 (file)
@@ -180,5 +180,5 @@ ADDRESS is specified by a \"mailto:\" URL."
 
 (provide 'gnus-ml)
 
-;;; arch-tag: 936c0fe6-acce-4c16-87d0-eded88078896
+;; arch-tag: 936c0fe6-acce-4c16-87d0-eded88078896
 ;;; gnus-ml.el ends here
index a919852..3acc0ae 100644 (file)
@@ -229,5 +229,5 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
 
 (provide 'gnus-mlspl)
 
-;;; arch-tag: 62b3381f-1e45-4b61-be1a-29fb27703322
+;; arch-tag: 62b3381f-1e45-4b61-be1a-29fb27703322
 ;;; gnus-mlspl.el ends here
index cc23c06..7557506 100644 (file)
@@ -179,5 +179,5 @@ Update the .newsrc.eld file to reflect the change of nntp server."
 
 (provide 'gnus-move)
 
-;;; arch-tag: 503742b8-7d66-4d79-bb31-4a698070707b
+;; arch-tag: 503742b8-7d66-4d79-bb31-4a698070707b
 ;;; gnus-move.el ends here
index 0a2ee2d..9a8b365 100644 (file)
@@ -552,8 +552,7 @@ Gcc: header for archiving purposes."
                       (t nil))))
     (message-add-action
      `(when (gnus-buffer-exists-p ,buffer)
-       (save-excursion
-         (set-buffer ,buffer)
+       (with-current-buffer ,buffer
          ,(when to-be-marked
             (if (eq config 'forward)
                 `(gnus-summary-mark-article-as-forwarded ',to-be-marked)
@@ -588,8 +587,7 @@ If ARG is 1, prompt for a group name to find the posting style."
                  ""))
          ;; #### see comment in gnus-setup-message -- drv
          (gnus-setup-message 'message (message-mail)))
-      (save-excursion
-       (set-buffer buffer)
+      (with-current-buffer buffer
        (setq gnus-newsgroup-name group)))))
 
 (defun gnus-group-news (&optional arg)
@@ -620,8 +618,7 @@ network.  The corresponding back end must have a 'request-post method."
          ;; #### see comment in gnus-setup-message -- drv
          (gnus-setup-message 'message
            (message-news (gnus-group-real-name gnus-newsgroup-name))))
-      (save-excursion
-       (set-buffer buffer)
+      (with-current-buffer buffer
        (setq gnus-newsgroup-name group)))))
 
 (defun gnus-group-post-news (&optional arg)
@@ -667,8 +664,7 @@ posting style."
                  gnus-newsgroup-name))
          ;; #### see comment in gnus-setup-message -- drv
          (gnus-setup-message 'message (message-mail)))
-      (save-excursion
-       (set-buffer buffer)
+      (with-current-buffer buffer
        (setq gnus-newsgroup-name group)))))
 
 (defun gnus-summary-news-other-window (&optional arg)
@@ -704,8 +700,7 @@ network.  The corresponding back end must have a 'request-post method."
                   (remove
                    (car (gnus-find-method-for-group gnus-newsgroup-name))
                    gnus-discouraged-post-methods)))))
-      (save-excursion
-       (set-buffer buffer)
+      (with-current-buffer buffer
        (setq gnus-newsgroup-name group)))))
 
 (defun gnus-summary-post-news (&optional arg)
@@ -828,8 +823,7 @@ header line with the old Message-ID."
       (push
        `((lambda ()
           (when (gnus-buffer-exists-p ,gnus-summary-buffer)
-            (save-excursion
-              (set-buffer ,gnus-summary-buffer)
+            (with-current-buffer ,gnus-summary-buffer
               (gnus-cache-possibly-remove-article ,article nil nil nil t)
               (gnus-summary-mark-as-read ,article gnus-canceled-mark)))))
        message-send-actions)
@@ -845,16 +839,14 @@ header line with the old Message-ID."
   ;; if ARTICLE-BUFFER is nil, gnus-article-buffer is used
   ;; this buffer should be passed to all mail/news reply/post routines.
   (setq gnus-article-copy (gnus-get-buffer-create " *gnus article copy*"))
-  (save-excursion
-    (set-buffer gnus-article-copy)
+  (with-current-buffer gnus-article-copy
     (mm-enable-multibyte))
   (let ((article-buffer (or article-buffer gnus-article-buffer))
        end beg)
     (if (not (and (get-buffer article-buffer)
                  (gnus-buffer-exists-p article-buffer)))
        (error "Can't find any article buffer")
-      (save-excursion
-       (set-buffer article-buffer)
+      (with-current-buffer article-buffer
        (let ((gnus-newsgroup-charset (or gnus-article-charset
                                          gnus-newsgroup-charset))
              (gnus-newsgroup-ignored-charsets
@@ -1120,8 +1112,7 @@ If VERY-WIDE, make a very wide reply."
            (gnus-summary-select-article)
          (dolist (article very-wide)
            (gnus-summary-select-article nil nil nil article)
-           (save-excursion
-             (set-buffer (gnus-copy-article-buffer))
+           (with-current-buffer (gnus-copy-article-buffer)
              (gnus-msg-treat-broken-reply-to)
              (save-restriction
                (message-narrow-to-head)
@@ -1144,8 +1135,7 @@ If VERY-WIDE, make a very wide reply."
   "Check the various replysign variables and take action accordingly."
   (when (or gnus-message-replysign gnus-message-replyencrypt)
     (let (signed encrypted)
-      (save-excursion
-       (set-buffer gnus-article-buffer)
+      (with-current-buffer gnus-article-buffer
        (setq signed (memq 'signed gnus-article-wash-types))
        (setq encrypted (memq 'encrypted gnus-article-wash-types)))
       (cond ((and gnus-message-replyencrypt encrypted)
@@ -1276,8 +1266,7 @@ For the `inline' alternatives, also see the variable
         current-prefix-arg))
   (dolist (article (gnus-summary-work-articles n))
     (gnus-summary-select-article nil nil nil article)
-    (save-excursion
-      (set-buffer gnus-original-article-buffer)
+    (with-current-buffer gnus-original-article-buffer
       (message-resend address))
     (gnus-summary-mark-article-as-forwarded article)))
 
@@ -1484,8 +1473,7 @@ If YANK is non-nil, include the original article."
       (insert nntp-server-type))
     (insert "\n\n\n\n\n")
     (let (text)
-      (save-excursion
-       (set-buffer (gnus-get-buffer-create " *gnus environment info*"))
+      (with-current-buffer (gnus-get-buffer-create " *gnus environment info*")
        (erase-buffer)
        (gnus-debug)
        (setq text (buffer-string)))
@@ -1506,8 +1494,7 @@ If YANK is non-nil, include the original article."
   (gnus-summary-iterate n
     (let ((gnus-inhibit-treatment t))
       (gnus-summary-select-article))
-    (save-excursion
-      (set-buffer buffer)
+    (with-current-buffer buffer
       (message-yank-buffer gnus-article-buffer))))
 
 (defun gnus-debug ()
@@ -1520,8 +1507,7 @@ The source file has to be in the Emacs load path."
     (gnus-message 4 "Please wait while we snoop your variables...")
     (sit-for 0)
     ;; Go through all the files looking for non-default values for variables.
-    (save-excursion
-      (set-buffer (gnus-get-buffer-create " *gnus bug info*"))
+    (with-current-buffer (gnus-get-buffer-create " *gnus bug info*")
       (while files
        (erase-buffer)
        (when (and (setq file (locate-library (pop files)))
@@ -1562,7 +1548,7 @@ The source file has to be in the Emacs load path."
     ;; Remove any control chars - they seem to cause trouble for some
     ;; mailers.  (Byte-compiled output from the stuff above.)
     (goto-char point)
-    (while (re-search-forward (mm-string-as-multibyte
+    (while (re-search-forward (mm-string-to-multibyte
                               "[\000-\010\013-\037\200-\237]") nil t)
       (replace-match (format "\\%03o" (string-to-char (match-string 0)))
                     t t))))
@@ -2000,5 +1986,5 @@ this is a reply."
 
 (provide 'gnus-msg)
 
-;;; arch-tag: 9f22b2f5-1c0a-49de-916e-4c88e984852b
+;; arch-tag: 9f22b2f5-1c0a-49de-916e-4c88e984852b
 ;;; gnus-msg.el ends here
index 5ce8e0f..1b092d5 100644 (file)
@@ -396,5 +396,5 @@ valid issuer, which is much faster if you are selective about the issuers."
 
 (provide 'gnus-nocem)
 
-;;; arch-tag: 0e0c74ea-2f8e-4f3e-8fff-09f767c1adef
+;; arch-tag: 0e0c74ea-2f8e-4f3e-8fff-09f767c1adef
 ;;; gnus-nocem.el ends here
index feb07d1..e5535a3 100644 (file)
@@ -313,5 +313,5 @@ If picons are already displayed, remove them."
 
 (provide 'gnus-picon)
 
-;;; arch-tag: fe9aede0-1b1b-463a-b4ab-807f98bcb31f
+;; arch-tag: fe9aede0-1b1b-463a-b4ab-807f98bcb31f
 ;;; gnus-picon.el ends here
index 9d5790b..38d4b84 100644 (file)
@@ -656,5 +656,5 @@ LIST is a sorted list."
 
 (provide 'gnus-range)
 
-;;; arch-tag: 4780bdd8-5a15-4aff-be28-18727895b6ad
+;; arch-tag: 4780bdd8-5a15-4aff-be28-18727895b6ad
 ;;; gnus-range.el ends here
index 687a8a2..fd08d4d 100644 (file)
@@ -1123,5 +1123,5 @@ Returns the first place where the trail finds a group name."
 
 (provide 'gnus-registry)
 
-;;; arch-tag: 5cba0a32-718a-4a97-8c91-0a15af21da94
+;; arch-tag: 5cba0a32-718a-4a97-8c91-0a15af21da94
 ;;; gnus-registry.el ends here
index 7a4fb25..0284db0 100644 (file)
@@ -3114,5 +3114,5 @@ See Info node `(gnus)Scoring Tips' for examples of good regular expressions."
 
 (provide 'gnus-score)
 
-;;; arch-tag: d3922589-764d-46ae-9954-9330fd192634
+;; arch-tag: d3922589-764d-46ae-9954-9330fd192634
 ;;; gnus-score.el ends here
index cc2d1eb..9b682e0 100644 (file)
@@ -191,5 +191,5 @@ score the alt hierarchy, you'd say \"!alt.all\"." t nil))
 
 (run-hooks 'gnus-setup-load-hook)
 
-;;; arch-tag: 08e4af93-8565-46bf-905c-36229400609d
+;; arch-tag: 08e4af93-8565-46bf-905c-36229400609d
 ;;; gnus-setup.el ends here
index a6023c8..460500d 100644 (file)
@@ -237,5 +237,5 @@ This is returned as a string."
 
 (provide 'gnus-sieve)
 
-;;; arch-tag: 3b906527-c7f3-4c86-9e82-62e2697998a3
+;; arch-tag: 3b906527-c7f3-4c86-9e82-62e2697998a3
 ;;; gnus-sieve.el ends here
index f34e001..7133c45 100644 (file)
@@ -594,9 +594,8 @@ Return whether the unpacking was successful."
                              (mail-fetch-field "to"))
                (sit-for 1)
                (let ((mail-header-separator ""))
-                 (mm-with-unibyte-current-buffer
-                   (funcall (or message-send-mail-real-function
-                                message-send-mail-function)))))
+                  (funcall (or message-send-mail-real-function
+                               message-send-mail-function))))
               (t
                (error "Unknown reply kind")))
              (set-buffer msg-buf)
@@ -610,5 +609,5 @@ Return whether the unpacking was successful."
 
 (provide 'gnus-soup)
 
-;;; arch-tag: eddfa69d-13e8-4aea-84ef-62a526ef185c
+;; arch-tag: eddfa69d-13e8-4aea-84ef-62a526ef185c
 ;;; gnus-soup.el ends here
index c35425b..d8a2fd7 100644 (file)
@@ -769,5 +769,5 @@ If PROPS, insert the result."
 ;; coding: iso-8859-1
 ;; End:
 
-;;; arch-tag: a4328fa1-1f84-4b09-97ad-4b5767cfd50f
+;; arch-tag: a4328fa1-1f84-4b09-97ad-4b5767cfd50f
 ;;; gnus-spec.el ends here
index 2173ee2..09d102a 100644 (file)
@@ -1029,5 +1029,5 @@ Requesting compaction of %s... (this may take a long time)"
 
 (provide 'gnus-srvr)
 
-;;; arch-tag: c0117f64-27ca-475d-9406-8da6854c7a25
+;; arch-tag: c0117f64-27ca-475d-9406-8da6854c7a25
 ;;; gnus-srvr.el ends here
index bdf411e..6b9f9c6 100644 (file)
@@ -1372,6 +1372,12 @@ the type of the variable (string, integer, character, etc).")
     (?E gnus-newsgroup-expunged-tally ?d)
     (?s (gnus-current-score-file-nondirectory) ?s)))
 
+;; This is here rather than in gnus-art for compilation reasons.
+(defvar gnus-article-mode-line-format-alist
+  (nconc '((?w (gnus-article-wash-status) ?s)
+          (?m (gnus-article-mime-part-status) ?s))
+        gnus-summary-mode-line-format-alist))
+
 (defvar gnus-last-search-regexp nil
   "Default regexp for article search command.")
 
@@ -1563,22 +1569,10 @@ For example:
         \"^From:\\\\|^Newsgroups:\\\\|^Subject:\\\\|^Date:\\\\|^To:\")))
 ")
 
-;; Byte-compiler warning.  Specifically, this is responsible for:
-;; "Warning: the following functions might not be defined at runtime:
-;; gnus-build-sparse-threads, gnus-dead-summary-mode, gnus-summary-mark-below".
 (eval-when-compile
   ;; Bind features so that require will believe that gnus-sum has
   ;; already been loaded (avoids infinite recursion)
   (let ((features (cons 'gnus-sum features)))
-    ;; Several of the declarations in gnus-sum are needed to load the
-    ;; following files. Right now, these definitions have been
-    ;; compiled but not defined (evaluated).  We could either do a
-    ;; eval-and-compile about all of the declarations or evaluate the
-    ;; source file.
-    (if (boundp 'gnus-newsgroup-variables)
-        nil
-      (load "gnus-sum.el" t t t))
-    (require 'gnus)
     (require 'gnus-art)))
 
 ;; MIME stuff.
@@ -3393,7 +3387,7 @@ marks of articles."
 (defun gnus-restore-hidden-threads-configuration (config)
   "Restore hidden threads configuration from CONFIG."
   (save-excursion
-    (let (point buffer-read-only)
+    (let (point (inhibit-read-only t))
       (while (setq point (pop config))
        (when (and (< point (point-max))
                   (goto-char point)
@@ -3716,7 +3710,7 @@ buffer that was in action when the last article was fetched."
         (gnus-tmp-subject (mail-header-subject gnus-tmp-header))
         (gnus-tmp-opening-bracket (if gnus-tmp-dummy ?\< ?\[))
         (gnus-tmp-closing-bracket (if gnus-tmp-dummy ?\> ?\]))
-        (buffer-read-only nil))
+        (inhibit-read-only t))
     (when (string= gnus-tmp-name "")
       (setq gnus-tmp-name gnus-tmp-from))
     (unless (numberp gnus-tmp-lines)
@@ -4022,7 +4016,7 @@ If NO-DISPLAY, don't generate a summary buffer."
 (defun gnus-summary-prepare ()
   "Generate the summary buffer."
   (interactive)
-  (let ((buffer-read-only nil))
+  (let ((inhibit-read-only t))
     (erase-buffer)
     (setq gnus-newsgroup-data nil
          gnus-newsgroup-data-reverse nil)
@@ -4430,8 +4424,7 @@ the id of the parent article (if any)."
   (let ((deps gnus-newsgroup-dependencies)
        found header)
     (prog1
-       (save-excursion
-         (set-buffer nntp-server-buffer)
+       (with-current-buffer nntp-server-buffer
          (let ((case-fold-search nil))
            (goto-char (point-min))
            (while (and (not found)
@@ -4466,8 +4459,7 @@ the id of the parent article (if any)."
        (mail-parse-charset gnus-newsgroup-charset)
        (dependencies gnus-newsgroup-dependencies)
        header article)
-    (save-excursion
-      (set-buffer nntp-server-buffer)
+    (with-current-buffer nntp-server-buffer
       (let ((case-fold-search nil))
        (goto-char (point-min))
        (while (not (eobp))
@@ -4499,7 +4491,7 @@ the id of the parent article (if any)."
     (gnus-summary-goto-subject article)
     (let* ((datal (gnus-data-find-list article))
           (data (car datal))
-          (buffer-read-only nil)
+          (inhibit-read-only t)
           (level (gnus-summary-thread-level)))
       (gnus-delete-line)
       (let ((inserted (- (point)
@@ -4550,7 +4542,7 @@ the id of the parent article (if any)."
                           (not (equal "" references)))
                  references))
               "none")))
-        (buffer-read-only nil)
+        (inhibit-read-only t)
         (old (car thread)))
     (when thread
       (unless iheader
@@ -4566,7 +4558,7 @@ the id of the parent article (if any)."
 (defun gnus-rebuild-thread (id &optional line)
   "Rebuild the thread containing ID.
 If LINE, insert the rebuilt thread starting on line LINE."
-  (let ((buffer-read-only nil)
+  (let ((inhibit-read-only t)
        old-pos current thread data)
     (if (not gnus-show-threads)
        (setq thread (list (car (gnus-id-to-thread id))))
@@ -5051,6 +5043,16 @@ If nil, use subject instead."
   :type 'string
   :group 'gnus-thread)
 
+(defcustom gnus-summary-display-while-building nil
+  "If non-nil, show and update the summary buffer as it's being built.
+If the value is t, update the buffer after every line is inserted.  If
+the value is an integer (N), update the display every N lines."
+  :version "22.1"
+  :group 'gnus-thread
+  :type '(choice (const :tag "off" nil)
+                number
+                (const :tag "frequently" t)))
+
 (defun gnus-summary-prepare-threads (threads)
   "Prepare summary buffer from THREADS and indentation LEVEL.
 THREADS is either a list of `(PARENT [(CHILD1 [(GRANDCHILD ...]...) ...])'
@@ -5970,11 +5972,10 @@ If WHERE is `summary', the summary mode line format will be used."
             (symbol-value
              (intern (format "gnus-%s-mode-line-format-spec" where))))
     (let (mode-string)
-      (save-excursion
-       ;; We evaluate this in the summary buffer since these
-       ;; variables are buffer-local to that buffer.
-       (set-buffer gnus-summary-buffer)
-       ;; We bind all these variables that are used in the `eval' form
+      ;; We evaluate this in the summary buffer since these
+      ;; variables are buffer-local to that buffer.
+      (with-current-buffer gnus-summary-buffer
+        ;; We bind all these variables that are used in the `eval' form
        ;; below.
        (let* ((mformat (symbol-value
                         (intern
@@ -6179,12 +6180,11 @@ The resulting hash table is returned, or nil if no Xrefs were found."
        headers id end ref number
        (mail-parse-charset gnus-newsgroup-charset)
        (mail-parse-ignored-charsets
-        (save-excursion (condition-case nil
-                            (set-buffer gnus-summary-buffer)
-                          (error))
-                        gnus-newsgroup-ignored-charsets)))
-    (save-excursion
-      (set-buffer nntp-server-buffer)
+        (save-current-buffer (condition-case nil
+                                  (set-buffer gnus-summary-buffer)
+                                (error))
+                              gnus-newsgroup-ignored-charsets)))
+    (with-current-buffer nntp-server-buffer
       ;; Translate all TAB characters into SPACE characters.
       (subst-char-in-region (point-min) (point-max) ?\t ?  t)
       (subst-char-in-region (point-min) (point-max) ?\r ?  t)
@@ -6350,8 +6350,7 @@ Return a list of headers that match SEQUENCE (see
               (t
                nil)))
        number headers header)
-    (save-excursion
-      (set-buffer nntp-server-buffer)
+    (with-current-buffer nntp-server-buffer
       (subst-char-in-region (point-min) (point-max) ?\r ?  t)
       ;; Allow the user to mangle the headers before parsing them.
       (gnus-run-hooks 'gnus-parse-headers-hook)
@@ -6475,8 +6474,7 @@ the subject line on."
   "Return a list of articles to be worked upon.
 The prefix argument, the list of process marked articles, and the
 current article will be taken into consideration."
-  (save-excursion
-    (set-buffer gnus-summary-buffer)
+  (with-current-buffer gnus-summary-buffer
     (cond
      (n
       ;; A numerical prefix has been given.
@@ -6560,8 +6558,7 @@ executed with point over the summary line of the articles."
 (defun gnus-summary-search-group (&optional backward use-level)
   "Search for next unread newsgroup.
 If optional argument BACKWARD is non-nil, search backward instead."
-  (save-excursion
-    (set-buffer gnus-group-buffer)
+  (with-current-buffer gnus-group-buffer
     (when (gnus-group-search-forward
           backward nil (if use-level (gnus-group-group-level) nil))
       (gnus-group-group-name))))
@@ -6747,7 +6744,7 @@ displayed, no centering will be performed."
        (gnus-group-jump-to-group newsgroup))
     (save-excursion
       ;; Take care of tree window mode.
-      (if (get-buffer-window gnus-group-buffer)
+      (if (get-buffer-window gnus-group-buffer 0)
          (pop-to-buffer gnus-group-buffer)
        (set-buffer gnus-group-buffer))
       (gnus-group-jump-to-group newsgroup))))
@@ -6998,8 +6995,7 @@ If FORCE (the prefix), also save the .newsrc file(s)."
   (interactive)
   (gnus-set-global-variables)
   (when (gnus-buffer-live-p gnus-article-buffer)
-    (save-excursion
-      (set-buffer gnus-article-buffer)
+    (with-current-buffer gnus-article-buffer
       (mm-destroy-parts gnus-article-mime-handles)
       ;; Set it to nil for safety reason.
       (setq gnus-article-mime-handle-alist nil)
@@ -7105,8 +7101,7 @@ If FORCE (the prefix), also save the .newsrc file(s)."
       (gnus-async-halt-prefetch)
       (run-hooks 'gnus-summary-prepare-exit-hook)
       (when (gnus-buffer-live-p gnus-article-buffer)
-       (save-excursion
-         (set-buffer gnus-article-buffer)
+       (with-current-buffer gnus-article-buffer
          (mm-destroy-parts gnus-article-mime-handles)
          ;; Set it to nil for safety reason.
          (setq gnus-article-mime-handle-alist nil)
@@ -7150,7 +7145,7 @@ The state which existed when entering the ephemeral is reset."
     (cond ((eq major-mode 'gnus-summary-mode)
           (gnus-set-global-variables))
          ((eq major-mode 'gnus-article-mode)
-          (save-excursion
+          (save-current-buffer
             ;; The `gnus-summary-buffer' variable may point
             ;; to the old summary buffer when using a single
             ;; article buffer.
@@ -7245,14 +7240,12 @@ The state which existed when entering the ephemeral is reset."
      (gnus-kill-summary-on-exit
       (when (and gnus-use-trees
                 (gnus-buffer-exists-p buffer))
-       (save-excursion
-         (set-buffer buffer)
+       (with-current-buffer buffer
          (gnus-tree-close gnus-newsgroup-name)))
       (gnus-kill-buffer buffer))
      ;; Deaden the buffer.
      ((gnus-buffer-exists-p buffer)
-      (save-excursion
-       (set-buffer buffer)
+      (with-current-buffer buffer
        (gnus-deaden-summary))))))
 
 (defun gnus-summary-wake-up-the-dead (&rest args)
@@ -7533,8 +7526,7 @@ be displayed."
     (and (not pseudo)
         (gnus-summary-article-pseudo-p article)
         (error "This is a pseudo-article"))
-    (save-excursion
-      (set-buffer gnus-summary-buffer)
+    (with-current-buffer gnus-summary-buffer
       (if (or (and gnus-single-article-buffer
                   (or (null gnus-current-article)
                       (null gnus-article-current)
@@ -7643,8 +7635,7 @@ If BACKWARD, the previous article is selected instead of the next."
                      (?\C-p (gnus-group-prev-unread-group 1))))
        (cursor-in-echo-area t)
        keve key group ended prompt)
-    (save-excursion
-      (set-buffer gnus-group-buffer)
+    (with-current-buffer gnus-group-buffer
       (goto-char start)
       (setq group
            (if (eq gnus-keep-same-level 'best)
@@ -8748,8 +8739,7 @@ The difference between N and the number of articles fetched is returned."
          ;; References header, since this is slightly more
          ;; reliable than the References field we got from the
          ;; server.
-         (save-excursion
-           (set-buffer gnus-original-article-buffer)
+         (with-current-buffer gnus-original-article-buffer
            (nnheader-narrow-to-headers)
            (unless (setq ref (message-fetch-field "references"))
              (when (setq ref (message-fetch-field "in-reply-to"))
@@ -8924,8 +8914,7 @@ to guess what the document format is."
           (case-fold-search t)
           (buf (current-buffer))
           dig to-address)
-      (save-excursion
-       (set-buffer gnus-original-article-buffer)
+      (with-current-buffer gnus-original-article-buffer
        ;; Have the digest group inherit the main mail address of
        ;; the parent article.
        (when (setq to-address (or (gnus-fetch-field "reply-to")
@@ -8995,7 +8984,7 @@ Obeys the standard process/prefix convention."
                                     (nndoc-article-type guess))
                       t nil t))
                (progn
-           ;; Make all postings to this group go to the parent group.
+                  ;; Make all postings to this group go to the parent group.
                  (nconc (gnus-info-params (gnus-get-info egroup))
                         params)
                  (push egroup groups))
@@ -9150,6 +9139,7 @@ Optional argument BACKWARD means do search for backward.
 This search includes all articles in the current group that Gnus has
 fetched headers for, whether they are displayed or not."
   (let ((articles nil)
+       ;; Can't eta-reduce because it's a macro.
        (func `(lambda (h) (,(intern (concat "mail-header-" header)) h)))
        (case-fold-search t))
     (dolist (header gnus-newsgroup-headers)
@@ -9346,8 +9336,7 @@ strokes are `C-u g'."
       (gnus-summary-select-article nil 'force)
       (let ((deps gnus-newsgroup-dependencies)
            head header lines)
-       (save-excursion
-         (set-buffer gnus-original-article-buffer)
+       (with-current-buffer gnus-original-article-buffer
          (save-restriction
            (message-narrow-to-head)
            (setq head (buffer-string))
@@ -9387,8 +9376,7 @@ strokes are `C-u g'."
          gnus-break-pages)
       ;; Destroy any MIME parts.
       (when (gnus-buffer-live-p gnus-article-buffer)
-       (save-excursion
-         (set-buffer gnus-article-buffer)
+       (with-current-buffer gnus-article-buffer
          (mm-destroy-parts gnus-article-mime-handles)
          ;; Set it to nil for safety reason.
          (setq gnus-article-mime-handle-alist nil)
@@ -9425,7 +9413,7 @@ If ARG is a negative number, hide the unwanted header lines."
     (with-current-buffer gnus-article-buffer
       (widen)
       (article-narrow-to-head)
-      (let* ((buffer-read-only nil)
+      (let* ((inhibit-read-only t)
             (inhibit-point-motion-hooks t)
             (hidden (if (numberp arg)
                         (>= arg 0)
@@ -9452,7 +9440,7 @@ If ARG is a negative number, hide the unwanted header lines."
        (if gnus-break-pages
            (gnus-narrow-to-page)
          (when (gnus-visual-p 'page-marker)
-           (let ((buffer-read-only nil))
+           (let ((inhibit-read-only t))
              (gnus-remove-text-with-property 'gnus-prev)
              (gnus-remove-text-with-property 'gnus-next))))
        (gnus-set-mode-line 'article)))))
@@ -9473,7 +9461,7 @@ prefix specifies how many places to rotate each letter forward."
       (save-restriction
        (widen)
        (let ((start (window-start))
-             buffer-read-only)
+             (inhibit-read-only t))
          (if (equal arg '(4))
              (message-caesar-buffer-body nil t)
            (message-caesar-buffer-body arg))
@@ -9519,7 +9507,7 @@ installed for this command to work."
        (save-restriction
          (widen)
          (let ((pos (window-start))
-               buffer-read-only)
+               (inhibit-read-only t))
            (goto-char (point-min))
            (when (message-goto-body)
              (gnus-narrow-to-body))
@@ -9537,7 +9525,7 @@ installed for this command to work."
   (gnus-eval-in-buffer-window gnus-article-buffer
     (widen)
     (when (gnus-visual-p 'page-marker)
-      (let ((buffer-read-only nil))
+      (let ((inhibit-read-only t))
        (gnus-remove-text-with-property 'gnus-prev)
        (gnus-remove-text-with-property 'gnus-next))
       (setq gnus-page-broken nil))))
@@ -9662,8 +9650,7 @@ ACTION can be either `move' (the default), `crosspost' or `copy'."
            move-is-internal)))         ; is this move internal?
        ;; Copy the article.
        ((eq action 'copy)
-        (save-excursion
-          (set-buffer copy-buf)
+        (with-current-buffer copy-buf
           (when (gnus-request-article-this-buffer article gnus-newsgroup-name)
             (save-restriction
               (nnheader-narrow-to-headers)
@@ -9686,8 +9673,7 @@ ACTION can be either `move' (the default), `crosspost' or `copy'."
                             (delete "Xref:" (delete new-xref xref))
                             " ")
                  " " new-xref))
-          (save-excursion
-            (set-buffer copy-buf)
+          (with-current-buffer copy-buf
             ;; First put the article in the destination group.
             (gnus-request-article-this-buffer article gnus-newsgroup-name)
             (when (consp (setq art-group
@@ -9791,8 +9777,7 @@ ACTION can be either `move' (the default), `crosspost' or `copy'."
          ;; Update the Xref header in this article to point to
          ;; the new crossposted article we have just created.
          (when (eq action 'crosspost)
-           (save-excursion
-             (set-buffer copy-buf)
+           (with-current-buffer copy-buf
              (gnus-request-article-this-buffer article gnus-newsgroup-name)
              (nnheader-replace-header "Xref" new-xref)
              (gnus-request-replace-article
@@ -9817,8 +9802,7 @@ ACTION can be either `move' (the default), `crosspost' or `copy'."
 
     (apply 'gnus-summary-remove-process-mark articles-to-update-marks)
     ;; Re-activate all groups that have been moved to.
-    (save-excursion
-      (set-buffer gnus-group-buffer)
+    (with-current-buffer gnus-group-buffer
       (let ((gnus-group-marked to-groups))
        (gnus-group-get-new-news-this-group nil t)))
 
@@ -9848,16 +9832,6 @@ If nil, use to the current newsgroup method."
   :type 'symbol
   :group 'gnus-summary-mail)
 
-(defcustom gnus-summary-display-while-building nil
-  "If non-nil, show and update the summary buffer as it's being built.
-If the value is t, update the buffer after every line is inserted.  If
-the value is an integer (N), update the display every N lines."
-  :version "22.1"
-  :group 'gnus-thread
-  :type '(choice (const :tag "off" nil)
-                number
-                (const :tag "frequently" t)))
-
 (defun gnus-summary-respool-article (&optional n method)
   "Respool the current article.
 The article will be squeezed through the mail spooling process again,
@@ -9913,8 +9887,7 @@ latter case, they will be copied into the relevant groups."
     (or (file-readable-p file)
        (not (file-regular-p file))
        (error "Can't read %s" file))
-    (save-excursion
-      (set-buffer (gnus-get-buffer-create " *import file*"))
+    (with-current-buffer (gnus-get-buffer-create " *import file*")
       (erase-buffer)
       (nnheader-insert-file-contents file)
       (goto-char (point-min))
@@ -9952,8 +9925,7 @@ latter case, they will be copied into the relevant groups."
        group-art)
     (unless (gnus-check-backend-function 'request-accept-article group)
       (error "%s does not support article importing" group))
-    (save-excursion
-      (set-buffer (gnus-get-buffer-create " *import file*"))
+    (with-current-buffer (gnus-get-buffer-create " *import file*")
       (erase-buffer)
       (goto-char (point-min))
       ;; This doesn't look like an article, so we fudge some headers.
@@ -10136,8 +10108,7 @@ groups."
                                             "nndraft:queue")))
       (error "Can't edit the raw article in group %s"
             gnus-newsgroup-name))
-    (save-excursion
-      (set-buffer gnus-summary-buffer)
+    (with-current-buffer gnus-summary-buffer
       (let ((mail-parse-charset gnus-newsgroup-charset)
            (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets))
        (gnus-set-global-variables)
@@ -10244,8 +10215,7 @@ groups."
                    (let ((nntp-server-buffer (current-buffer)))
                      (setq header (car (gnus-get-newsgroup-headers
                                         nil t))))
-                   (save-excursion
-                     (set-buffer gnus-summary-buffer)
+                   (with-current-buffer gnus-summary-buffer
                      (gnus-data-set-header
                       (gnus-data-find (cdr gnus-article-current))
                       header)
@@ -10263,8 +10233,7 @@ groups."
               (cdr gnus-article-current))))
        ;; Prettify the article buffer again.
        (unless no-highlight
-         (save-excursion
-           (set-buffer gnus-article-buffer)
+         (with-current-buffer gnus-article-buffer
            ;;;!!! Fix this -- article should be rehighlighted.
            ;;;(gnus-run-hooks 'gnus-article-display-hook)
            (set-buffer gnus-original-article-buffer)
@@ -10294,8 +10263,7 @@ groups."
   (interactive)
   (let (gnus-mark-article-hook)
     (gnus-summary-select-article)
-    (save-excursion
-      (set-buffer gnus-original-article-buffer)
+    (with-current-buffer gnus-original-article-buffer
       (let ((groups (nnmail-article-group 'identity trace)))
        (unless silent
          (if groups
@@ -10456,7 +10424,7 @@ ARTICLE can also be a list of articles."
       (unless (numberp article)
        (error "%s is not a number" article))
       (push article gnus-newsgroup-replied)
-      (let ((buffer-read-only nil))
+      (let ((inhibit-read-only t))
        (when (gnus-summary-goto-subject article nil t)
          (gnus-summary-update-secondary-mark article))))))
 
@@ -10466,7 +10434,7 @@ ARTICLE can also be a list of articles."
   (let ((articles (if (listp article) article (list article))))
     (dolist (article articles)
       (push article gnus-newsgroup-forwarded)
-      (let ((buffer-read-only nil))
+      (let ((inhibit-read-only t))
        (when (gnus-summary-goto-subject article nil t)
          (gnus-summary-update-secondary-mark article))))))
 
@@ -10685,7 +10653,7 @@ If NO-EXPIRE, auto-expiry will be inhibited."
                (= mark gnus-dormant-mark) (= mark gnus-unread-mark))))
 
        (when (gnus-summary-goto-subject article nil t)
-         (let ((buffer-read-only nil))
+         (let ((inhibit-read-only t))
            (gnus-summary-show-thread)
            ;; Fix the mark.
            (gnus-summary-update-mark mark 'unread)
@@ -10729,7 +10697,7 @@ If NO-EXPIRE, auto-expiry will be inhibited."
 
 (defun gnus-summary-update-mark (mark type)
   (let ((forward (cdr (assq type gnus-summary-mark-positions)))
-       (buffer-read-only nil))
+       (inhibit-read-only t))
     (re-search-backward "[\n\r]" (point-at-bol) 'move-to-limit)
     (when forward
       (when (looking-at "\r")
@@ -10914,8 +10882,7 @@ even ticked and dormant ones."
   (setq score (if score
                  (prefix-numeric-value score)
                (or gnus-summary-default-score 0)))
-  (save-excursion
-    (set-buffer gnus-summary-buffer)
+  (with-current-buffer gnus-summary-buffer
     (goto-char (point-min))
     (while
        (progn
@@ -10944,8 +10911,7 @@ even ticked and dormant ones."
   (setq score (if score
                  (prefix-numeric-value score)
                (or gnus-summary-default-score 0)))
-  (save-excursion
-    (set-buffer gnus-summary-buffer)
+  (with-current-buffer gnus-summary-buffer
     (goto-char (point-min))
     (while (and (progn
                  (when (> (gnus-summary-article-score) score)
@@ -10958,7 +10924,7 @@ even ticked and dormant ones."
 (defun gnus-summary-limit-include-expunged (&optional no-error)
   "Display all the hidden articles that were expunged for low scores."
   (interactive)
-  (let ((buffer-read-only nil))
+  (let ((inhibit-read-only t))
     (let ((scored gnus-newsgroup-scored)
          headers h)
       (while scored
@@ -11334,8 +11300,7 @@ Returns nil if no threads were there to be hidden."
        (start (point))
        (article (gnus-summary-article-number)))
     (goto-char start)
-    ;; Go forward until either the buffer ends or the subthread
-    ;; ends.
+    ;; Go forward until either the buffer ends or the subthread ends.
     (when (and (not (eobp))
               (or (zerop (gnus-summary-next-thread 1 t))
                   (goto-char (point-max))))
@@ -11540,7 +11505,7 @@ Argument REVERSE means reverse order."
   "Sort the summary buffer using the default sorting method.
 Argument REVERSE means reverse order."
   (interactive "P")
-  (let* ((buffer-read-only)
+  (let* ((inhibit-read-only t)
         (gnus-summary-prepare-hook nil))
     ;; We do the sorting by regenerating the threads.
     (gnus-summary-prepare)
@@ -11563,7 +11528,7 @@ Argument REVERSE means reverse order."
              article
            `(lambda (t1 t2)
               (,article t2 t1))))
-        (buffer-read-only)
+        (inhibit-read-only t)
         (gnus-summary-prepare-hook nil))
     ;; We do the sorting by regenerating the threads.
     (gnus-summary-prepare)
@@ -11614,8 +11579,7 @@ will not be marked as saved."
                                             gnus-article-prepare-hook)))
            (gnus-summary-select-article t nil nil article)
            (gnus-summary-goto-subject article)))
-       (save-excursion
-         (set-buffer save-buffer)
+       (with-current-buffer save-buffer
          (erase-buffer)
          (insert-buffer-substring (if decode
                                       gnus-article-buffer
@@ -11735,7 +11699,7 @@ save those articles instead."
       (save-restriction
        (widen)
        (let ((start (window-start))
-             buffer-read-only)
+             (inhibit-read-only t))
          (message-pipe-buffer-body program)
          (set-window-start (get-buffer-window (current-buffer)) start))))))
 
@@ -11743,8 +11707,7 @@ save those articles instead."
   "Return a value based on the split METHODS."
   (let (split-name method result match)
     (when methods
-      (save-excursion
-       (set-buffer gnus-original-article-buffer)
+      (with-current-buffer gnus-original-article-buffer
        (save-restriction
          (nnheader-narrow-to-headers)
          (while (and methods (not split-name))
@@ -11857,8 +11820,7 @@ If REVERSE, save parts that do not match TYPE."
     (let ((gnus-display-mime-function nil)
          (gnus-inhibit-treatment t))
       (gnus-summary-select-article))
-    (save-excursion
-      (set-buffer gnus-article-buffer)
+    (with-current-buffer gnus-article-buffer
       (let ((handles (or gnus-article-mime-handles
                         (mm-dissect-buffer nil gnus-article-loose-mime)
                         (and gnus-article-emulate-mime
@@ -11896,7 +11858,7 @@ If REVERSE, save parts that do not match TYPE."
 ;; Summary extract commands
 
 (defun gnus-summary-insert-pseudos (pslist &optional not-view)
-  (let ((buffer-read-only nil)
+  (let ((inhibit-read-only t)
        (article (gnus-summary-article-number))
        after-article b e)
     (unless (gnus-summary-goto-subject article)
@@ -12024,8 +11986,7 @@ If REVERSE, save parts that do not match TYPE."
        ;; We have found the header.
        header
       ;; We have to really fetch the header to this article.
-      (save-excursion
-       (set-buffer nntp-server-buffer)
+      (with-current-buffer nntp-server-buffer
        (when (setq where (gnus-request-head id group))
          (nnheader-fold-continuation-lines)
          (goto-char (point-max))
@@ -12053,8 +12014,7 @@ If REVERSE, save parts that do not match TYPE."
              ;; a different group (or server), we fudge some bogus
              ;; article numbers for this article.
              (mail-header-set-number header gnus-reffed-article-number))
-           (save-excursion
-             (set-buffer gnus-summary-buffer)
+           (with-current-buffer gnus-summary-buffer
              (decf gnus-reffed-article-number)
              (gnus-remove-header (mail-header-number header))
              (push header gnus-newsgroup-headers)
index 92f4ca0..ecaa786 100644 (file)
@@ -1780,5 +1780,5 @@ If REVERSE, reverse the sorting order."
 
 (provide 'gnus-topic)
 
-;;; arch-tag: bf176856-f30c-40f0-ae77-e41529a1134c
+;; arch-tag: bf176856-f30c-40f0-ae77-e41529a1134c
 ;;; gnus-topic.el ends here
index ac64eee..e85e7e7 100644 (file)
@@ -190,5 +190,5 @@ A numeric argument serves as a repeat count."
 
 (provide 'gnus-undo)
 
-;;; arch-tag: 0d787bc7-787d-499a-837f-211d2cb07f2e
+;; arch-tag: 0d787bc7-787d-499a-837f-211d2cb07f2e
 ;;; gnus-undo.el ends here
index 66db49d..637703c 100644 (file)
@@ -1793,5 +1793,5 @@ is allowed once again.  (Immediately, if `inhibit-quit' is nil.)"
 
 (provide 'gnus-util)
 
-;;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49
+;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49
 ;;; gnus-util.el ends here
index cdf5e4d..334e73b 100644 (file)
@@ -2172,5 +2172,5 @@ If no file has been included, the user will be asked for a file."
 
 (provide 'gnus-uu)
 
-;;; arch-tag: 05312384-0a83-4720-9a58-b3160b888853
+;; arch-tag: 05312384-0a83-4720-9a58-b3160b888853
 ;;; gnus-uu.el ends here
index 8624db4..ff8f75a 100644 (file)
@@ -105,5 +105,5 @@ save those articles instead."
 
 (provide 'gnus-vm)
 
-;;; arch-tag: 42ca7f88-a12f-461d-be3e-cac7efb44866
+;; arch-tag: 42ca7f88-a12f-461d-be3e-cac7efb44866
 ;;; gnus-vm.el ends here
index 03d882c..ba77620 100644 (file)
@@ -592,5 +592,5 @@ should have point."
 
 (provide 'gnus-win)
 
-;;; arch-tag: ccd5a394-2ddf-4397-b8f8-6d80d3e46e2b
+;; arch-tag: ccd5a394-2ddf-4397-b8f8-6d80d3e46e2b
 ;;; gnus-win.el ends here
index a61af6e..9daaa00 100644 (file)
@@ -4375,5 +4375,5 @@ prompt the user for the name of an NNTP server to use."
 
 (provide 'gnus)
 
-;;; arch-tag: acebeeab-f331-4f8f-a7ea-89c58c84f636
+;; arch-tag: acebeeab-f331-4f8f-a7ea-89c58c84f636
 ;;; gnus.el ends here
index 5b29296..a6d148c 100644 (file)
@@ -377,4 +377,4 @@ Prefix arg sets default accept amount temporarily."
 
 (provide 'hashcash)
 
-;;; arch-tag: 0e7fe983-a124-4392-9788-0dbcbd2c4d62
+;; arch-tag: 0e7fe983-a124-4392-9788-0dbcbd2c4d62
index 6b7cb7d..89e8214 100644 (file)
@@ -82,5 +82,5 @@ If BIT is non-nil, truncate output to specified bits."
 
 (provide 'hmac-def)
 
-;;; arch-tag: 645adcef-b835-4900-a10a-11f636c982b9
+;; arch-tag: 645adcef-b835-4900-a10a-11f636c982b9
 ;;; hmac-def.el ends here
index 50a2d27..9143647 100644 (file)
@@ -81,5 +81,5 @@
 
 (provide 'hmac-md5)
 
-;;; arch-tag: 0ab3f4f6-3d4b-4167-a9fa-635b7fed7f27
+;; arch-tag: 0ab3f4f6-3d4b-4167-a9fa-635b7fed7f27
 ;;; hmac-md5.el ends here
index cb4d7dd..573abcd 100644 (file)
@@ -510,5 +510,5 @@ See the documentation for that variable."
 ;; </Interactive functions>
 ;;
 (provide 'html2text)
-;;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e
+;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e
 ;;; html2text.el ends here
index 28193b8..6ec5a31 100644 (file)
@@ -289,5 +289,5 @@ a list of address strings."
 
 (provide 'ietf-drums)
 
-;;; arch-tag: 379a0191-dbae-4ca6-a0f5-d4202c209ef9
+;; arch-tag: 379a0191-dbae-4ca6-a0f5-d4202c209ef9
 ;;; ietf-drums.el ends here
index 9e3d0a9..2ae3ce5 100644 (file)
@@ -3005,5 +3005,5 @@ Return nil if no complete line has arrived."
 
 (provide 'imap)
 
-;;; arch-tag: 27369ed6-33e4-482f-96f1-8bb906ba70f7
+;; arch-tag: 27369ed6-33e4-482f-96f1-8bb906ba70f7
 ;;; imap.el ends here
index 576e0c2..9125f43 100644 (file)
@@ -76,5 +76,5 @@
 
 (provide 'mail-parse)
 
-;;; arch-tag: 3e63d75c-c962-4784-ab01-7ba07ca9d2d4
+;; arch-tag: 3e63d75c-c962-4784-ab01-7ba07ca9d2d4
 ;;; mail-parse.el ends here
index b6fdd82..8516736 100644 (file)
@@ -43,5 +43,5 @@ what the desired charsets is to be ignored.")
 
 (provide 'mail-prsvr)
 
-;;; arch-tag: 9ba878cc-8b43-4f7a-85b1-69b1a9a5d9f5
+;; arch-tag: 9ba878cc-8b43-4f7a-85b1-69b1a9a5d9f5
 ;;; mail-prsvr.el ends here
index 583b190..a26f885 100644 (file)
@@ -1114,5 +1114,5 @@ This only works when `display-time' is enabled."
 
 (provide 'mail-source)
 
-;;; arch-tag: 72948025-1d17-4d6c-bb12-ef1aa2c490fd
+;; arch-tag: 72948025-1d17-4d6c-bb12-ef1aa2c490fd
 ;;; mail-source.el ends here
index 866e57f..7abb97e 100644 (file)
@@ -1007,7 +1007,55 @@ If FORCE, re-parse even if already parsed."
               (cdr l))))
       mailcap-mime-data)))))
 
+;;;
+;;; Useful supplementary functions
+;;;
+
+(defun mailcap-file-default-commands (files)
+  "Return a list of default commands for FILES."
+  (mailcap-parse-mailcaps)
+  (mailcap-parse-mimetypes)
+  (let* ((all-mime-type
+         ;; All unique MIME types from file extensions
+         (delete-dups (mapcar (lambda (file)
+                                (mailcap-extension-to-mime
+                                 (file-name-extension file t)))
+                              files)))
+        (all-mime-info
+         ;; All MIME info lists
+         (delete-dups (mapcar (lambda (mime-type)
+                                (mailcap-mime-info mime-type 'all))
+                              all-mime-type)))
+        (common-mime-info
+         ;; Intersection of mime-infos from different mime-types;
+         ;; or just the first MIME info for a single MIME type
+         (if (cdr all-mime-info)
+             (delq nil (mapcar (lambda (mi1)
+                                 (unless (memq nil (mapcar
+                                                    (lambda (mi2)
+                                                      (member mi1 mi2))
+                                                    (cdr all-mime-info)))
+                                   mi1))
+                               (car all-mime-info)))
+           (car all-mime-info)))
+        (commands
+         ;; Command strings from `viewer' field of the MIME info
+         (delete-dups
+          (delq nil (mapcar (lambda (mime-info)
+                              (let ((command (cdr (assoc 'viewer mime-info))))
+                                (if (stringp command)
+                                    (replace-regexp-in-string
+                                     ;; Replace mailcap's `%s' placeholder
+                                     ;; with dired's `?' placeholder
+                                     "%s" "?"
+                                     (replace-regexp-in-string
+                                      ;; Remove the final filename placeholder
+                                      "\s*\\('\\)?%s\\1?\s*\\'" "" command nil t)
+                                     nil t))))
+                            common-mime-info)))))
+    commands))
+
 (provide 'mailcap)
 
-;;; arch-tag: 1fd4f9c9-c305-4d2e-9747-3a4d45baa0bd
+;; arch-tag: 1fd4f9c9-c305-4d2e-9747-3a4d45baa0bd
 ;;; mailcap.el ends here
index 1343509..194a119 100644 (file)
@@ -224,5 +224,5 @@ integer is represented as a pair of two 16 bits integers (cons high low)."
 
 (provide 'md4)
 
-;;; arch-tag: 99d706fe-089b-42ea-9507-67ae41091e6e
+;; arch-tag: 99d706fe-089b-42ea-9507-67ae41091e6e
 ;;; md4.el ends here
index a863614..f35b9a3 100644 (file)
@@ -569,7 +569,13 @@ Done before generating the new subject of a forward."
   :link '(custom-manual "(message)Forwarding")
   :type 'boolean)
 
-(defcustom message-ignored-resent-headers "^Return-receipt\\|^X-Gnus\\|^Gnus-Warning:\\|^>?From "
+(defcustom message-ignored-resent-headers
+  ;; `Delivered-To' needs to be removed because some mailers use it to
+  ;; detect loops, so if you resend a message to an address that ultimately
+  ;; comes back to you (e.g. a mailing-list to which you subscribe, in which
+  ;; case you may be removed from the list on the grounds that mail to you
+  ;; bounced with a "mailing loop" error).
+  "^Return-receipt\\|^X-Gnus\\|^Gnus-Warning:\\|^>?From \\|^Delivered-To:"
   "*All headers that match this regexp will be deleted when resending a message."
   :group 'message-interface
   :link '(custom-manual "(message)Resending")
@@ -2484,6 +2490,7 @@ Point is left at the beginning of the narrowed-to region."
 
 
 (autoload 'Info-goto-node "info")
+(defvar mml2015-use)
 
 (defun message-info (&optional arg)
   "Display the Message manual.
@@ -2492,8 +2499,11 @@ Prefixed with one \\[universal-argument], display the Emacs MIME
 manual.  With two \\[universal-argument]'s, display the EasyPG or
 PGG manual, depending on the value of `mml2015-use'."
   (interactive "p")
+  ;; Why not `info', which is in loaddefs.el?
   (Info-goto-node (format "(%s)Top"
-                         (cond ((eq arg 16) mml2015-use)
+                         (cond ((eq arg 16)
+                                (require 'mml2015)
+                                mml2015-use)
                                ((eq arg  4) 'emacs-mime)
                                ;; `booleanp' only available in Emacs 22+
                                ((and (not (memq arg '(nil t)))
@@ -5340,19 +5350,18 @@ In posting styles use `(\"Expires\" (make-expires-date 30))'."
                   ;; Quote a string containing non-ASCII characters.
                   ;; It will make the RFC2047 encoder cause an error
                   ;; if there are special characters.
-                  (let ((default-enable-multibyte-characters t))
-                    (with-temp-buffer
-                      (insert (car name))
-                      (goto-char (point-min))
-                      (while (search-forward "\"" nil t)
-                        (when (prog2
-                                  (backward-char)
-                                  (zerop (% (skip-chars-backward "\\\\") 2))
-                                (goto-char (match-beginning 0)))
-                          (insert "\\"))
-                        (forward-char))
-                      ;; Those quotes will be removed by the RFC2047 encoder.
-                      (concat "\"" (buffer-string) "\"")))
+                   (mm-with-multibyte-buffer
+                     (insert (car name))
+                     (goto-char (point-min))
+                     (while (search-forward "\"" nil t)
+                       (when (prog2
+                                 (backward-char)
+                                 (zerop (% (skip-chars-backward "\\\\") 2))
+                               (goto-char (match-beginning 0)))
+                         (insert "\\"))
+                       (forward-char))
+                     ;; Those quotes will be removed by the RFC2047 encoder.
+                     (concat "\"" (buffer-string) "\""))
                 (car name))
             (nth 1 name))
           "'s message of \""
index 2f60363..07b9edf 100644 (file)
@@ -91,5 +91,5 @@ variable `mail-header-separator'.")
 
 (provide 'messcompat)
 
-;;; arch-tag: a76673be-905e-4bbd-8966-615370494a7b
+;; arch-tag: a76673be-905e-4bbd-8966-615370494a7b
 ;;; messcompat.el ends here
index 90d4acb..208c35f 100644 (file)
@@ -203,10 +203,7 @@ If TYPE is `text/plain' CRLF->LF translation may occur."
               (when (re-search-backward "^[A-Za-z0-9+/]+=*[\t ]*$" nil t)
                 (forward-line))
               (point))))
-          ((memq encoding '(7bit 8bit binary))
-           ;; Do nothing.
-           t)
-          ((null encoding)
+          ((memq encoding '(nil 7bit 8bit binary))
            ;; Do nothing.
            t)
           ((memq encoding '(x-uuencode x-uue))
@@ -307,5 +304,5 @@ decoding.  If it is nil, default to `mail-parse-charset'."
 
 (provide 'mm-bodies)
 
-;;; arch-tag: 41104bb6-4443-4ca9-8d5c-ff87ecf27d8d
+;; arch-tag: 41104bb6-4443-4ca9-8d5c-ff87ecf27d8d
 ;;; mm-bodies.el ends here
index dde46be..56258b9 100644 (file)
@@ -235,6 +235,9 @@ before the external MIME handler is invoked."
        ;; makes it possible to install another package which provides an
        ;; alternative implementation of diff-mode.  --Stef
        (fboundp 'diff-mode)))
+    ;; In case mime.types uses x-diff (as does Debian's mime-support-3.40).
+    ("text/x-diff" mm-display-patch-inline
+     (lambda (handle) (fboundp 'diff-mode)))
     ("application/emacs-lisp" mm-display-elisp-inline identity)
     ("application/x-emacs-lisp" mm-display-elisp-inline identity)
     ("text/dns" mm-display-dns-inline identity)
@@ -663,15 +666,16 @@ Postpone undisplaying of viewers for types in
 
 (defun mm-copy-to-buffer ()
   "Copy the contents of the current buffer to a fresh buffer."
-    (let ((obuf (current-buffer))
-         beg)
-      (goto-char (point-min))
-      (search-forward-regexp "^\n" nil t)
-      (setq beg (point))
+  (let ((obuf (current-buffer))
+        (mb (mm-multibyte-p))
+        beg)
+    (goto-char (point-min))
+    (search-forward-regexp "^\n" nil t)
+    (setq beg (point))
     (with-current-buffer
-       ;; Preserve the data's unibyteness (for url-insert-file-contents).
-       (let ((default-enable-multibyte-characters (mm-multibyte-p)))
-          (generate-new-buffer " *mm*"))
+          (generate-new-buffer " *mm*")
+      ;; Preserve the data's unibyteness (for url-insert-file-contents).
+      (mm-set-buffer-multibyte mb)
       (insert-buffer-substring obuf beg)
       (current-buffer))))
 
@@ -1131,17 +1135,15 @@ in HANDLE."
 
 (defmacro mm-with-part (handle &rest forms)
   "Run FORMS in the temp buffer containing the contents of HANDLE."
-  `(let* ((handle ,handle)
-         ;; The multibyteness of the temp buffer should be turned on
-         ;; if inserting a multibyte string.  Contrarily, the buffer's
-         ;; multibyteness should be off if inserting a unibyte string,
-         ;; especially if a string contains 8bit data.
-         (default-enable-multibyte-characters
-           (with-current-buffer (mm-handle-buffer handle)
-             (mm-multibyte-p))))
+  ;; The handle-buffer's content is a sequence of bytes, not a sequence of
+  ;; chars, so the buffer should be unibyte.  It may happen that the
+  ;; handle-buffer is multibyte for some reason, in which case now is a good
+  ;; time to adjust it, since we know at this point that it should
+  ;; be unibyte.
+  `(let* ((handle ,handle))
      (with-temp-buffer
-       (insert-buffer-substring (mm-handle-buffer handle))
        (mm-disable-multibyte)
+       (insert-buffer-substring (mm-handle-buffer handle))
        (mm-decode-content-transfer-encoding
        (mm-handle-encoding handle)
        (mm-handle-media-type handle))
@@ -1238,10 +1240,9 @@ PROMPT overrides the default one used to ask user for a file name."
       (setq filename (gnus-map-function mm-file-name-rewrite-functions
                                        (file-name-nondirectory filename))))
     (setq file
-         (mm-with-multibyte
-          (read-file-name (or prompt "Save MIME part to: ")
-                          (or mm-default-directory default-directory)
-                          nil nil (or filename ""))))
+          (read-file-name (or prompt "Save MIME part to: ")
+                          (or mm-default-directory default-directory)
+                          nil nil (or filename "")))
     (setq mm-default-directory (file-name-directory file))
     (and (or (not (file-exists-p file))
             (yes-or-no-p (format "File %s already exists; overwrite? "
index d22c59c..2597a5d 100644 (file)
@@ -206,5 +206,5 @@ This is either `base64' or `quoted-printable'."
 
 (provide 'mm-encode)
 
-;;; arch-tag: 7d01bba4-d469-4851-952b-dc863f84ed66
+;; arch-tag: 7d01bba4-d469-4851-952b-dc863f84ed66
 ;;; mm-encode.el ends here
index d63ffb8..5f0565f 100644 (file)
@@ -171,5 +171,5 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
 
 (provide 'mm-extern)
 
-;;; arch-tag: 9653808e-14d9-4172-86e6-adceaa05378e
+;; arch-tag: 9653808e-14d9-4172-86e6-adceaa05378e
 ;;; mm-extern.el ends here
index 0a8a133..764c706 100644 (file)
@@ -152,5 +152,5 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
 
 (provide 'mm-partial)
 
-;;; arch-tag: 460e7424-05f2-4a1d-a0f2-70ec081eff7d
+;; arch-tag: 460e7424-05f2-4a1d-a0f2-70ec081eff7d
 ;;; mm-partial.el ends here
index f1b4d43..e7245d0 100644 (file)
@@ -457,5 +457,5 @@ spaces.  Die Die Die."
 
 (provide 'mm-url)
 
-;;; arch-tag: 0594f9b3-417c-48b0-adc2-5082e1e7917f
+;; arch-tag: 0594f9b3-417c-48b0-adc2-5082e1e7917f
 ;;; mm-url.el ends here
index 8e625c9..7a944bb 100644 (file)
      (multibyte-string-p . ignore)
      (insert-byte . insert-char)
      (multibyte-char-to-unibyte . identity)
+     (set-buffer-multibyte . ignore)
      (special-display-p
       . (lambda (buffer-name)
          "Returns non-nil if a buffer named BUFFER-NAME gets a special frame."
@@ -1052,16 +1053,18 @@ charset, and a longer list means no appropriate charset."
 (defmacro mm-with-unibyte-buffer (&rest forms)
   "Create a temporary buffer, and evaluate FORMS there like `progn'.
 Use unibyte mode for this."
-  `(let (default-enable-multibyte-characters)
-     (with-temp-buffer ,@forms)))
+  `(with-temp-buffer
+     (mm-disable-multibyte)
+     ,@forms))
 (put 'mm-with-unibyte-buffer 'lisp-indent-function 0)
 (put 'mm-with-unibyte-buffer 'edebug-form-spec '(body))
 
 (defmacro mm-with-multibyte-buffer (&rest forms)
   "Create a temporary buffer, and evaluate FORMS there like `progn'.
 Use multibyte mode for this."
-  `(let ((default-enable-multibyte-characters t))
-     (with-temp-buffer ,@forms)))
+  `(with-temp-buffer
+     (mm-enable-multibyte)
+     ,@forms))
 (put 'mm-with-multibyte-buffer 'lisp-indent-function 0)
 (put 'mm-with-multibyte-buffer 'edebug-form-spec '(body))
 
index bf5125e..9d5c636 100644 (file)
@@ -280,11 +280,14 @@ If PROPERTIES is non-nil, PROPERTIES are applied to the buffer,
 see `set-text-properties'.  If PROPERTIES equals t, this means to
 apply the face `mm-uu-extract'."
   (let ((obuf (current-buffer))
+        (multi (and (boundp 'enable-multibyte-characters)
+                    enable-multibyte-characters))
        (coding-system
          ;; Might not exist in non-MULE XEmacs
          (when (boundp 'buffer-file-coding-system)
            buffer-file-coding-system)))
     (with-current-buffer (generate-new-buffer " *mm-uu*")
+      (if multi (mm-enable-multibyte) (mm-disable-multibyte))
       (setq buffer-file-coding-system coding-system)
       (insert-buffer-substring obuf from to)
       (cond ((eq properties  t)
@@ -441,8 +444,7 @@ apply the face `mm-uu-extract'."
   ;; This might not be exactly correct, but we sure can't get the
   ;; binary data from the article buffer, since that's already in a
   ;; non-binary charset.  So get it from the original article buffer. 
-  (mm-make-handle (save-excursion
-                   (set-buffer gnus-original-article-buffer)
+  (mm-make-handle (with-current-buffer gnus-original-article-buffer
                    (mm-uu-copy-to-buffer start-point end-point))
                  (list (or (and file-name
                                 (string-match "\\.[^\\.]+$" file-name)
index 9e9414f..d91f0da 100644 (file)
 
 (defun mm-inline-image-emacs (handle)
   (let ((b (point-marker))
-       buffer-read-only)
+       (inhibit-read-only t))
     (put-image (mm-get-image handle) b)
     (insert "\n\n")
     (mm-handle-set-undisplayer
      handle
      `(lambda ()
        (let ((b ,b)
-             buffer-read-only)
+             (inhibit-read-only t))
          (remove-images b b)
          (delete-region b (+ b 2)))))))
 
     (insert "\n\n")
     (forward-char -2)
     (let ((annot (make-annotation (mm-get-image handle) nil 'text))
-         buffer-read-only)
+       (inhibit-read-only t))
       (mm-handle-set-undisplayer
        handle
        `(lambda ()
          (let ((b ,(point-marker))
-               buffer-read-only)
+             (inhibit-read-only t))
            (delete-annotation ,annot)
            (delete-region (- b 2) b))))
       (set-extent-property annot 'mm t)
        (mm-handle-set-undisplayer
         handle
         `(lambda ()
-           (let (buffer-read-only)
+           (let ((inhibit-read-only t))
              ,@(if (functionp 'remove-specifier)
-                   '((mapcar (lambda (prop)
-                               (remove-specifier
-                                (face-property 'default prop)
-                                (current-buffer)))
-                             '(background background-pixmap foreground))))
+                    '((dolist (prop '(background background-pixmap foreground))
+                        (remove-specifier
+                         (face-property 'default prop)
+                         (current-buffer)))))
              (delete-region ,(point-min-marker)
                             ,(point-max-marker)))))))))
 
 (defun mm-inline-text-html (handle)
   (let* ((func (or mm-inline-text-html-renderer mm-text-html-renderer))
         (entry (assq func mm-text-html-renderer-alist))
-        buffer-read-only)
+        (inhibit-read-only t))
     (if entry
        (setq func (cdr entry)))
     (cond
       (apply (car func) handle (cdr func))))))
 
 (defun mm-inline-text-vcard (handle)
-  (let (buffer-read-only)
+  (let ((inhibit-read-only t))
     (mm-insert-inline
      handle
      (concat "\n-- \n"
        (type (mm-handle-media-subtype handle))
        (charset (mail-content-type-get
                  (mm-handle-type handle) 'charset))
-       buffer-read-only)
+       (inhibit-read-only t))
     (if (or (eq charset 'gnus-decoded)
            ;; This is probably not entirely correct, but
            ;; makes rfc822 parts with embedded multiparts work.
        (goto-char (point-max))))
     (save-restriction
       (narrow-to-region b (point))
-      (when (or (equal type "enriched")
-               (equal type "richtext"))
-       (set-text-properties (point-min) (point-max) nil)
+      (when (member type '("enriched" "richtext"))
+        (set-text-properties (point-min) (point-max) nil)
        (ignore-errors
          (enriched-decode (point-min) (point-max))))
       (mm-handle-set-undisplayer
        handle
        `(lambda ()
-         (let (buffer-read-only)
+          (let ((inhibit-read-only t))
            (delete-region ,(point-min-marker)
                           ,(point-max-marker))))))))
 
     (mm-handle-set-undisplayer
      handle
      `(lambda ()
-       (let (buffer-read-only)
-         (delete-region ,(set-marker (make-marker) b)
-                        ,(set-marker (make-marker) (point))))))))
+       (let ((inhibit-read-only t))
+         (delete-region ,(copy-marker b)
+                        ,(copy-marker (point))))))))
 
 (defun mm-inline-audio (handle)
   (message "Not implemented"))
        (mm-handle-set-undisplayer
         handle
         `(lambda ()
-           (let (buffer-read-only)
+           (let ((inhibit-read-only t))
              (if (fboundp 'remove-specifier)
                  ;; This is only valid on XEmacs.
-                 (mapcar (lambda (prop)
-                           (remove-specifier
-                            (face-property 'default prop) (current-buffer)))
-                         '(background background-pixmap foreground)))
+                 (dolist (prop '(background background-pixmap foreground))
+                   (remove-specifier
+                    (face-property 'default prop) (current-buffer))))
              (delete-region ,(point-min-marker) ,(point-max-marker)))))))))
 
 (defun mm-display-inline-fontify (handle mode)
 ;;      id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
 ;;          us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }
 (defvar mm-pkcs7-signed-magic
-  (mm-string-as-unibyte
-   (mapconcat 'char-to-string
-             (list ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c
-                   ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e
-                   ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48
-                   ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x02) "")))
+  (funcall (if (fboundp 'unibyte-string) 'unibyte-string 'string)
+   ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c
+   ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e
+   ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48
+   ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x02))
 
 ;;      id-envelopedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
 ;;          us(840) rsadsi(113549) pkcs(1) pkcs7(7) 3 }
 (defvar mm-pkcs7-enveloped-magic
-  (mm-string-as-unibyte
-   (mapconcat 'char-to-string
-             (list ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c
-                   ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e
-                   ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48
-                   ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x03) "")))
+  (funcall (if (fboundp 'unibyte-string) 'unibyte-string 'string)
+   ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c
+   ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e
+   ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48
+   ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x03))
 
 (defun mm-view-pkcs7-get-type (handle)
   (mm-with-unibyte-buffer
 
 (provide 'mm-view)
 
-;;; arch-tag: b60e749a-d05c-47f2-bccd-bdaa59327cb2
+;; arch-tag: b60e749a-d05c-47f2-bccd-bdaa59327cb2
 ;;; mm-view.el ends here
index 0906b8e..896b014 100644 (file)
@@ -380,5 +380,5 @@ If called with a prefix argument, only encrypt (do NOT sign)."
 
 (provide 'mml-sec)
 
-;;; arch-tag: 111c56e7-df5e-4287-87d7-93ed2911ec6c
+;; arch-tag: 111c56e7-df5e-4287-87d7-93ed2911ec6c
 ;;; mml-sec.el ends here
index 340370b..e2f6e63 100644 (file)
@@ -552,5 +552,5 @@ Content-Disposition: attachment; filename=smime.p7m
 
 (provide 'mml-smime)
 
-;;; arch-tag: f1bf94d4-f2cd-4c6f-b059-ad69492817e2
+;; arch-tag: f1bf94d4-f2cd-4c6f-b059-ad69492817e2
 ;;; mml-smime.el ends here
index 79a1de7..b29738d 100644 (file)
@@ -1516,5 +1516,5 @@ or the `pop-to-buffer' function."
 
 (provide 'mml)
 
-;;; arch-tag: 583c96cf-1ffe-451b-a5e5-4733ae9ddd12
+;; arch-tag: 583c96cf-1ffe-451b-a5e5-4733ae9ddd12
 ;;; mml.el ends here
index 5224f7e..27d7490 100644 (file)
@@ -520,5 +520,5 @@ If no one is selected, default secret key is used.  "
 ;; coding: iso-8859-1
 ;; End:
 
-;;; arch-tag: e542be18-ab28-4393-9b33-97fe9cf30706
+;; arch-tag: e542be18-ab28-4393-9b33-97fe9cf30706
 ;;; mml1991.el ends here
index eb09b71..903623a 100644 (file)
@@ -1422,5 +1422,5 @@ If no one is selected, default secret key is used.  "
 
 (provide 'mml2015)
 
-;;; arch-tag: b04701d5-0b09-44d8-bed8-de901bf435f2
+;; arch-tag: b04701d5-0b09-44d8-bed8-de901bf435f2
 ;;; mml2015.el ends here
index de82ae7..e2fbd74 100644 (file)
@@ -210,5 +210,5 @@ MODE can be \"login\" or \"password\", suitable for passing to
 
 (provide 'netrc)
 
-;;; arch-tag: af9929cc-2d12-482f-936e-eb4366f9fa55
+;; arch-tag: af9929cc-2d12-482f-936e-eb4366f9fa55
 ;;; netrc.el ends here
index b0c14fa..67cc762 100644 (file)
 
 (provide 'nnagent)
 
-;;; arch-tag: af710b77-f816-4969-af31-6fd94fb42245
+;; arch-tag: af710b77-f816-4969-af31-6fd94fb42245
 ;;; nnagent.el ends here
index 06943de..6a9d08d 100644 (file)
 
 (provide 'nnbabyl)
 
-;;; arch-tag: aa7ddedb-8c07-4c0e-beb0-58e795c2b81b
+;; arch-tag: aa7ddedb-8c07-4c0e-beb0-58e795c2b81b
 ;;; nnbabyl.el ends here
index 655c3b9..06bc88d 100644 (file)
@@ -323,5 +323,5 @@ Optional LAST is ignored."
 
 (provide 'nndb)
 
-;;; arch-tag: 83bd6fb4-58d9-4fed-a901-c6c625ad5f8a
+;; arch-tag: 83bd6fb4-58d9-4fed-a901-c6c625ad5f8a
 ;;; nndb.el ends here
index 4cc0a98..0854d98 100644 (file)
@@ -1587,5 +1587,5 @@ all.  This may very well take some time.")
 (provide 'nndiary)
 
 
-;;; arch-tag: 9c542b95-92e7-4ace-a038-330ab296e203
+;; arch-tag: 9c542b95-92e7-4ace-a038-330ab296e203
 ;;; nndiary.el ends here
index 85aff9c..f6b59d5 100644 (file)
@@ -98,5 +98,5 @@
 
 (provide 'nndir)
 
-;;; arch-tag: 56f09f68-0e4e-4816-818a-df80b4a394c8
+;; arch-tag: 56f09f68-0e4e-4816-818a-df80b4a394c8
 ;;; nndir.el ends here
index f9455ed..dbaaa4d 100644 (file)
@@ -689,7 +689,7 @@ from the document.")
   (looking-at "JMF"))
 
 (defun nndoc-oe-dbx-type-p ()
-  (looking-at (mm-string-as-multibyte "\317\255\022\376")))
+  (looking-at (mm-string-to-multibyte "\317\255\022\376")))
 
 (defun nndoc-read-little-endian ()
   (+ (prog1 (char-after) (forward-char 1))
@@ -1027,5 +1027,5 @@ symbol in the alist."
 
 (provide 'nndoc)
 
-;;; arch-tag: f5c2970e-0387-47ac-a0b3-6cc317dffabe
+;; arch-tag: f5c2970e-0387-47ac-a0b3-6cc317dffabe
 ;;; nndoc.el ends here
index dc232ee..daf37e4 100644 (file)
@@ -315,5 +315,5 @@ are generated if and only if they are also in `message-draft-headers'.")
 
 (provide 'nndraft)
 
-;;; arch-tag: 3ce26ca0-41cb-48b1-8703-4dad35e188aa
+;; arch-tag: 3ce26ca0-41cb-48b1-8703-4dad35e188aa
 ;;; nndraft.el ends here
index ac52cfd..aa0f328 100644 (file)
@@ -428,5 +428,5 @@ included.")
 
 (provide 'nneething)
 
-;;; arch-tag: 1277f386-88f2-4459-bb24-f3f45962a6c5
+;; arch-tag: 1277f386-88f2-4459-bb24-f3f45962a6c5
 ;;; nneething.el ends here
index f1c5258..4f5ab8a 100644 (file)
@@ -1302,5 +1302,5 @@ This command does not work if you use short group names."
 
 (provide 'nnfolder)
 
-;;; arch-tag: a040d0f4-4f4e-445f-8972-839575c5f7e6
+;; arch-tag: a040d0f4-4f4e-445f-8972-839575c5f7e6
 ;;; nnfolder.el ends here
index ede5380..9e0b97b 100644 (file)
@@ -91,5 +91,5 @@ parameter -- the gateway address.")
 
 (provide 'nngateway)
 
-;;; arch-tag: f7ecb92e-b10c-43d5-9a9b-1314233341fc
+;; arch-tag: f7ecb92e-b10c-43d5-9a9b-1314233341fc
 ;;; nngateway.el ends here
index b448d40..15e6a6c 100644 (file)
@@ -572,12 +572,11 @@ the line could be found."
 
 (defun nnheader-init-server-buffer ()
   "Initialize the Gnus-backend communication buffer."
-  (save-excursion
-    (unless (gnus-buffer-live-p nntp-server-buffer)
-      (setq nntp-server-buffer (get-buffer-create " *nntpd*")))
-    (set-buffer nntp-server-buffer)
-    (mm-enable-multibyte)
+  (unless (gnus-buffer-live-p nntp-server-buffer)
+    (setq nntp-server-buffer (get-buffer-create " *nntpd*")))
+  (with-current-buffer nntp-server-buffer
     (erase-buffer)
+    (mm-enable-multibyte)
     (kill-all-local-variables)
     (setq case-fold-search t)          ;Should ignore case.
     (set (make-local-variable 'nntp-process-response) nil)
@@ -1060,7 +1059,6 @@ See `find-file-noselect' for the arguments."
 
 (defalias 'nnheader-cancel-timer 'cancel-timer)
 (defalias 'nnheader-cancel-function-timers 'cancel-function-timers)
-(defalias 'nnheader-string-as-multibyte 'string-as-multibyte)
 
 (defun nnheader-accept-process-output (process)
   (accept-process-output
@@ -1077,5 +1075,5 @@ See `find-file-noselect' for the arguments."
 
 (provide 'nnheader)
 
-;;; arch-tag: a9c4b7d9-52ae-4ec9-b196-dfd93124d202
+;; arch-tag: a9c4b7d9-52ae-4ec9-b196-dfd93124d202
 ;;; nnheader.el ends here
index 716fbaa..45f7946 100644 (file)
@@ -617,7 +617,9 @@ If EXAMINE is non-nil the group is selected read-only."
              lines (imap-body-lines (imap-message-body imap-current-message))
              chars (imap-message-get imap-current-message 'RFC822.SIZE)))
       (nnheader-insert-nov
-       (with-temp-buffer
+       ;; At this stage, we only have bytes, so let's use unibyte buffers
+       ;; to make it more clear.
+       (mm-with-unibyte-buffer
         (buffer-disable-undo)
         (insert headers)
         (let ((head (nnheader-parse-naked-head uid)))
@@ -1553,8 +1555,7 @@ function is generally only called when Gnus is shutting down."
        ;; request the article only when the move is NOT internal
        (and (or move-is-internal
                 (nnimap-request-article article group server))
-            (save-excursion
-              (set-buffer buf)
+            (with-current-buffer buf
               (buffer-disable-undo (current-buffer))
               (insert-buffer-substring nntp-server-buffer)
               (setq result (eval accept-form))
index aca3869..4c447d3 100644 (file)
@@ -388,5 +388,5 @@ Finds out what articles are to be part of the nnkiboze groups."
 
 (provide 'nnkiboze)
 
-;;; arch-tag: 66068271-bdc9-4801-bcde-779702e73a05
+;; arch-tag: 66068271-bdc9-4801-bcde-779702e73a05
 ;;; nnkiboze.el ends here
index 4194137..725437b 100644 (file)
 
 (provide 'nnlistserv)
 
-;;; arch-tag: 7705176f-d332-4a5e-a520-d0d319445617
+;; arch-tag: 7705176f-d332-4a5e-a520-d0d319445617
 ;;; nnlistserv.el ends here
index 0cccfa1..3228055 100644 (file)
@@ -2049,5 +2049,5 @@ Doesn't change point."
 
 (provide 'nnmail)
 
-;;; arch-tag: fe8f671a-50db-428a-bb5d-f00462f72ed7
+;; arch-tag: fe8f671a-50db-428a-bb5d-f00462f72ed7
 ;;; nnmail.el ends here
index 05c19c2..9ae10af 100644 (file)
@@ -1669,5 +1669,5 @@ by nnmaildir-request-article.")
 ;; fill-column: 77
 ;; End:
 
-;;; arch-tag: 0c4e44cd-dfde-4040-888e-5597ec771849
+;; arch-tag: 0c4e44cd-dfde-4040-888e-5597ec771849
 ;;; nnmaildir.el ends here
index 78af887..963184d 100644 (file)
 
 (provide 'nnmbox)
 
-;;; arch-tag: 611dd95f-be37-413a-b3ae-8b059ba93659
+;; arch-tag: 611dd95f-be37-413a-b3ae-8b059ba93659
 ;;; nnmbox.el ends here
index 88730a2..af79aca 100644 (file)
@@ -77,8 +77,7 @@ as unread by Gnus.")
 (nnoo-define-basics nnmh)
 
 (deffoo nnmh-retrieve-headers (articles &optional newsgroup server fetch-old)
-  (save-excursion
-    (set-buffer nntp-server-buffer)
+  (with-current-buffer nntp-server-buffer
     (erase-buffer)
     (let* ((file nil)
           (number (length articles))
@@ -225,8 +224,7 @@ as unread by Gnus.")
     (let ((files (mapcar 'string-to-number
                         (directory-files dir nil "^[0-9]+$" t))))
       (when files
-       (save-excursion
-         (set-buffer nntp-server-buffer)
+       (with-current-buffer nntp-server-buffer
          (goto-char (point-max))
          (insert
           (format
@@ -237,7 +235,7 @@ as unread by Gnus.")
                (file-truename (file-name-as-directory
                                (expand-file-name nnmh-toplev))))
               dir)
-             (mm-string-as-multibyte
+             (mm-string-to-multibyte   ;Why?  Isn't it multibyte already?
               (mm-encode-coding-string
                (nnheader-replace-chars-in-string
                 (substring dir (match-end 0))
@@ -298,8 +296,7 @@ as unread by Gnus.")
     (and
      (nnmh-deletable-article-p group article)
      (nnmh-request-article article group server)
-     (save-excursion
-       (set-buffer buf)
+     (with-current-buffer buf
        (erase-buffer)
        (insert-buffer-substring nntp-server-buffer)
        (setq result (eval accept-form))
@@ -339,8 +336,7 @@ as unread by Gnus.")
 
 (deffoo nnmh-request-replace-article (article group buffer)
   (nnmh-possibly-change-directory group)
-  (save-excursion
-    (set-buffer buffer)
+  (with-current-buffer buffer
     (nnmh-possibly-create-directory group)
     (ignore-errors
       (nnmail-write-region
@@ -580,5 +576,5 @@ as unread by Gnus.")
 
 (provide 'nnmh)
 
-;;; arch-tag: 36c12a98-3bad-44b3-9953-628078ef0e04
+;; arch-tag: 36c12a98-3bad-44b3-9953-628078ef0e04
 ;;; nnmh.el ends here
index 55c33b1..1c764b5 100644 (file)
@@ -1309,5 +1309,5 @@ Use the nov database for the current group if available."
 
 (provide 'nnml)
 
-;;; arch-tag: 52c97dc3-9735-45de-b439-9e4d23b52004
+;; arch-tag: 52c97dc3-9735-45de-b439-9e4d23b52004
 ;;; nnml.el ends here
index 5c5e3c1..ecb0ced 100644 (file)
@@ -81,4 +81,4 @@
 
 (provide 'nnnil)
 
-;;; arch-tag: a982a1a3-bc5e-4fb1-a233-d7657a3e3257
+;; arch-tag: a982a1a3-bc5e-4fb1-a233-d7657a3e3257
index 56be96f..933ce00 100644 (file)
@@ -324,5 +324,5 @@ All functions will return nil and report an error."
 
 (provide 'nnoo)
 
-;;; arch-tag: 0196b5ed-6f34-4778-a455-73a971f837e7
+;; arch-tag: 0196b5ed-6f34-4778-a455-73a971f837e7
 ;;; nnoo.el ends here
index 70fec30..cd12b82 100644 (file)
@@ -1131,7 +1131,5 @@ prefix), return the prefix."
 
 (provide 'nnrss)
 
-
+;; arch-tag: 12910c07-0cdf-44fb-8d2c-416ded64c267
 ;;; nnrss.el ends here
-
-;;; arch-tag: 12910c07-0cdf-44fb-8d2c-416ded64c267
index e9a5cad..92351a4 100644 (file)
 
 (provide 'nnslashdot)
 
-;;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3
+;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3
 ;;; nnslashdot.el ends here
index 24825e1..e74ecda 100644 (file)
@@ -810,5 +810,5 @@ backend for the messages.")
 
 (provide 'nnsoup)
 
-;;; arch-tag: b0451389-5703-4450-9425-f66f6b38c828
+;; arch-tag: b0451389-5703-4450-9425-f66f6b38c828
 ;;; nnsoup.el ends here
index d8f876d..bb5be8f 100644 (file)
@@ -458,5 +458,5 @@ there.")
 
 (provide 'nnspool)
 
-;;; arch-tag: bdac8d27-2934-4eee-bad0-49e6b90c0d05
+;; arch-tag: bdac8d27-2934-4eee-bad0-49e6b90c0d05
 ;;; nnspool.el ends here
index 68a7f3c..f43d1a1 100644 (file)
@@ -84,11 +84,12 @@ Direct connections:
 - `nntp-open-network-stream' (the default),
 - `nntp-open-ssl-stream',
 - `nntp-open-tls-stream',
+- `nntp-open-netcat-stream'.
 - `nntp-open-telnet-stream'.
 
 Indirect connections:
-- `nntp-open-via-rlogin-and-telnet',
 - `nntp-open-via-rlogin-and-netcat',
+- `nntp-open-via-rlogin-and-telnet',
 - `nntp-open-via-telnet-and-telnet'.")
 
 (defvoo nntp-never-echoes-commands nil
@@ -143,12 +144,13 @@ This command is used by the `nntp-open-via-telnet-and-telnet' method.")
 (defvoo nntp-via-telnet-switches '("-8")
   "*Switches given to the telnet command `nntp-via-telnet-command'.")
 
-(defvoo nntp-via-netcat-command "nc"
+(defvoo nntp-netcat-command "nc"
   "*Netcat command used to connect to the nntp server.
-This command is used by the `nntp-open-via-rlogin-and-netcat' method.")
+This command is used by the `nntp-open-netcat-stream' and
+`nntp-open-via-rlogin-and-netcat' methods.")
 
-(defvoo nntp-via-netcat-switches nil
-  "*Switches given to the netcat command `nntp-via-netcat-command'.")
+(defvoo nntp-netcat-switches nil
+  "*Switches given to the netcat command `nntp-netcat-command'.")
 
 (defvoo nntp-via-user-name nil
   "*User name to log in on an intermediate host with.
@@ -335,8 +337,7 @@ backend doesn't catch this error.")
 
 (defun nntp-record-command (string)
   "Record the command STRING."
-  (save-excursion
-    (set-buffer (get-buffer-create "*nntp-log*"))
+  (with-current-buffer (get-buffer-create "*nntp-log*")
     (goto-char (point-max))
     (let ((time (current-time)))
       (insert (format-time-string "%Y%m%dT%H%M%S" time)
@@ -393,8 +394,7 @@ be restored and the command retried."
 (defsubst nntp-wait-for (process wait-for buffer &optional decode discard)
   "Wait for WAIT-FOR to arrive from PROCESS."
 
-  (save-excursion
-    (set-buffer (process-buffer process))
+  (with-current-buffer (process-buffer process)
     (goto-char (point-min))
 
     (while (and (or (not (memq (char-after (point)) '(?2 ?3 ?4 ?5)))
@@ -432,8 +432,7 @@ be restored and the command retried."
              (setq nntp-process-response response)))
          (nntp-decode-text (not decode))
          (unless discard
-           (save-excursion
-             (set-buffer buffer)
+           (with-current-buffer buffer
              (goto-char (point-max))
              (nntp-insert-buffer-substring (process-buffer process))
              ;; Nix out "nntp reading...." message.
@@ -539,8 +538,7 @@ be restored and the command retried."
                       nntp-open-connection-function
                       nntp-open-connection-functions-never-echo-commands))
            (nntp-accept-response)
-           (save-excursion
-             (set-buffer buffer)
+           (with-current-buffer buffer
              (goto-char pos)
              (if (looking-at (regexp-quote command))
                  (delete-region pos (progn (forward-line 1)
@@ -563,8 +561,7 @@ be restored and the command retried."
          ;; If nothing to wait for, still remove possibly echo'ed commands
          (unless wait-for
            (nntp-accept-response)
-           (save-excursion
-             (set-buffer buffer)
+           (with-current-buffer buffer
              (goto-char pos)
              (if (looking-at (regexp-quote command))
                  (delete-region pos (progn (forward-line 1)
@@ -590,8 +587,7 @@ be restored and the command retried."
          ;; If nothing to wait for, still remove possibly echo'ed commands
          (unless wait-for
            (nntp-accept-response)
-           (save-excursion
-             (set-buffer buffer)
+           (with-current-buffer buffer
              (goto-char pos)
              (if (looking-at (regexp-quote command))
                  (delete-region pos (progn (forward-line 1) (point-at-bol))))
@@ -607,10 +603,12 @@ be restored and the command retried."
     (nntp-erase-buffer
      (nntp-find-connection-buffer nntp-server-buffer)))
   (nntp-encode-text)
-  (mm-with-unibyte-current-buffer
-    ;; Some encoded unicode text contains character 0x80-0x9f e.g. Euro.
-    (process-send-region (nntp-find-connection nntp-server-buffer)
-                        (point-min) (point-max)))
+  ;; Make sure we did not forget to encode some of the content.
+  (assert (save-excursion (goto-char (point-min))
+                          (not (re-search-forward "[^\000-\377]" nil t))))
+  (mm-disable-multibyte)
+  (process-send-region (nntp-find-connection nntp-server-buffer)
+                       (point-min) (point-max))
   (nntp-retrieve-data
    nil nntp-address nntp-port-number nntp-server-buffer
    wait-for nnheader-callback-function))
@@ -648,67 +646,79 @@ be restored and the command retried."
   (defvar nntp-with-open-group-internal nil)
   (defvar nntp-report-n nil))
 
+(defun nntp-with-open-group-function (-group -server -connectionless -bodyfun)
+  "Protect against servers that don't like clients that keep idle connections opens.
+The problem being that these servers may either close a connection or
+simply ignore any further requests on a connection.  Closed
+connections are not detected until `accept-process-output' has updated
+the `process-status'.  Dropped connections are not detected until the
+connection timeouts (which may be several minutes) or
+`nntp-connection-timeout' has expired.  When these occur
+`nntp-with-open-group', opens a new connection then re-issues the NNTP
+command whose response triggered the error."
+  (letf ((nntp-report-n (symbol-function 'nntp-report))
+         ((symbol-function 'nntp-report) (symbol-function 'nntp-report-1))
+         (nntp-with-open-group-internal nil))
+    (while (catch 'nntp-with-open-group-error
+             ;; Open the connection to the server
+             ;; NOTE: Existing connections are NOT tested.
+             (nntp-possibly-change-group -group -server -connectionless)
+
+             (let ((-timer
+                    (and nntp-connection-timeout
+                         (run-at-time
+                          nntp-connection-timeout nil
+                          (lambda ()
+                            (let* ((-process (nntp-find-connection
+                                             nntp-server-buffer))
+                                   (-buffer  (and -process
+                                                  (process-buffer -process))))
+                              ;; When I an able to identify the
+                              ;; connection to the server AND I've
+                              ;; received NO reponse for
+                              ;; nntp-connection-timeout seconds.
+                              (when (and -buffer (eq 0 (buffer-size -buffer)))
+                                ;; Close the connection.  Take no
+                                ;; other action as the accept input
+                                ;; code will handle the closed
+                                ;; connection.
+                                (nntp-kill-buffer -buffer))))))))
+               (unwind-protect
+                   (setq nntp-with-open-group-internal
+                         (condition-case nil
+                             (funcall -bodyfun)
+                           (quit
+                            (unless debug-on-quit
+                              (nntp-close-server))
+                            (signal 'quit nil))))
+                 (when -timer
+                   (nnheader-cancel-timer -timer)))
+               nil))
+      (setf (symbol-function 'nntp-report) nntp-report-n))
+    nntp-with-open-group-internal))
+
 (defmacro nntp-with-open-group (group server &optional connectionless &rest forms)
   "Protect against servers that don't like clients that keep idle connections opens.
 The problem being that these servers may either close a connection or
 simply ignore any further requests on a connection.  Closed
-connections are not detected until accept-process-output has updated
-the process-status.  Dropped connections are not detected until the
+connections are not detected until `accept-process-output' has updated
+the `process-status'.  Dropped connections are not detected until the
 connection timeouts (which may be several minutes) or
-nntp-connection-timeout has expired.  When these occur
-nntp-with-open-group, opens a new connection then re-issues the NNTP
+`nntp-connection-timeout' has expired.  When these occur
+`nntp-with-open-group', opens a new connection then re-issues the NNTP
 command whose response triggered the error."
+  (declare (indent 2) (debug (form form [&optional symbolp] def-body)))
   (when (and (listp connectionless)
             (not (eq connectionless nil)))
     (setq forms (cons connectionless forms)
          connectionless nil))
-  `(letf ((nntp-report-n (symbol-function 'nntp-report))
-         ((symbol-function 'nntp-report) (symbol-function 'nntp-report-1))
-         (nntp-with-open-group-internal nil))
-     (while (catch 'nntp-with-open-group-error
-             ;; Open the connection to the server
-             ;; NOTE: Existing connections are NOT tested.
-             (nntp-possibly-change-group ,group ,server ,connectionless)
-
-             (let ((timer
-                    (and nntp-connection-timeout
-                         (run-at-time
-                          nntp-connection-timeout nil
-                          '(lambda ()
-                             (let ((process (nntp-find-connection
-                                             nntp-server-buffer))
-                                   (buffer  (and process
-                                                 (process-buffer process))))
-                               ;; When I am able to identify the
-                               ;; connection to the server AND I've
-                               ;; received NO reponse for
-                               ;; nntp-connection-timeout seconds.
-                               (when (and buffer (eq 0 (buffer-size buffer)))
-                                 ;; Close the connection.  Take no
-                                 ;; other action as the accept input
-                                 ;; code will handle the closed
-                                 ;; connection.
-                                 (nntp-kill-buffer buffer))))))))
-               (unwind-protect
-                   (setq nntp-with-open-group-internal
-                          (condition-case nil
-                             (progn ,@forms)
-                           (quit
-                            (unless debug-on-quit
-                              (nntp-close-server))
-                             (signal 'quit nil))))
-                 (when timer
-                   (nnheader-cancel-timer timer)))
-               nil))
-       (setf (symbol-function 'nntp-report) nntp-report-n))
-     nntp-with-open-group-internal))
+  `(nntp-with-open-group-function ,group ,server ,connectionless (lambda () ,@forms)))
 
 (deffoo nntp-retrieve-headers (articles &optional group server fetch-old)
   "Retrieve the headers of ARTICLES."
   (nntp-with-open-group
    group server
-   (save-excursion
-     (set-buffer (nntp-find-connection-buffer nntp-server-buffer))
+   (with-current-buffer (nntp-find-connection-buffer nntp-server-buffer)
      (erase-buffer)
      (if (and (not gnus-nov-is-evil)
               (not nntp-nov-is-evil)
@@ -930,8 +940,7 @@ command whose response triggered the error."
 
 (defun nntp-try-list-active (group)
   (nntp-list-active-group group)
-  (save-excursion
-    (set-buffer nntp-server-buffer)
+  (with-current-buffer nntp-server-buffer
     (goto-char (point-min))
     (cond ((or (eobp)
               (looking-at "5[0-9]+"))
@@ -959,8 +968,7 @@ command whose response triggered the error."
            (if (numberp article) (int-to-string article) article))
       (if (and buffer
                (not (equal buffer nntp-server-buffer)))
-          (save-excursion
-            (set-buffer nntp-server-buffer)
+          (with-current-buffer nntp-server-buffer
             (copy-to-buffer buffer (point-min) (point-max))
             (nntp-find-group-and-number group))
         (nntp-find-group-and-number group)))))
@@ -1057,8 +1065,7 @@ command whose response triggered the error."
 (deffoo nntp-request-newgroups (date &optional server)
   (nntp-with-open-group
    nil server
-   (save-excursion
-     (set-buffer nntp-server-buffer)
+   (with-current-buffer nntp-server-buffer
      (let* ((time (date-to-time date))
             (ls (- (cadr time) (nth 8 (decode-time time)))))
        (cond ((< ls 0)
@@ -1227,12 +1234,11 @@ password contained in '~/.nntp-authinfo'."
 
 (defun nntp-make-process-buffer (buffer)
   "Create a new, fresh buffer usable for nntp process connections."
-  (save-excursion
-    (set-buffer
-     (generate-new-buffer
-      (format " *server %s %s %s*"
-             nntp-address nntp-port-number
-             (gnus-buffer-exists-p buffer))))
+  (with-current-buffer
+      (generate-new-buffer
+       (format " *server %s %s %s*"
+               nntp-address nntp-port-number
+               (gnus-buffer-exists-p buffer)))
     (mm-disable-multibyte)
     (set (make-local-variable 'after-change-functions) nil)
     (set (make-local-variable 'nntp-process-wait-for) nil)
@@ -1275,8 +1281,7 @@ password contained in '~/.nntp-authinfo'."
          (prog1
              (caar (push (list process buffer nil) nntp-connection-alist))
            (push process nntp-connection-list)
-           (save-excursion
-             (set-buffer pbuffer)
+           (with-current-buffer pbuffer
              (nntp-read-server-type)
              (erase-buffer)
              (set-buffer nntp-server-buffer)
@@ -1304,8 +1309,7 @@ password contained in '~/.nntp-authinfo'."
                                            ?s nntp-address
                                            ?p nntp-port-number)))))
     (gnus-set-process-query-on-exit-flag proc nil)
-    (save-excursion
-      (set-buffer buffer)
+    (with-current-buffer buffer
       (let ((nntp-connection-alist (list proc buffer nil)))
        (nntp-wait-for-string "^\r*20[01]"))
       (beginning-of-line)
@@ -1315,8 +1319,7 @@ password contained in '~/.nntp-authinfo'."
 (defun nntp-open-tls-stream (buffer)
   (let ((proc (open-tls-stream "nntpd" buffer nntp-address nntp-port-number)))
     (gnus-set-process-query-on-exit-flag proc nil)
-    (save-excursion
-      (set-buffer buffer)
+    (with-current-buffer buffer
       (let ((nntp-connection-alist (list proc buffer nil)))
        (nntp-wait-for-string "^\r*20[01]"))
       (beginning-of-line)
@@ -1337,8 +1340,7 @@ password contained in '~/.nntp-authinfo'."
          (funcall (cadr entry)))))))
 
 (defun nntp-async-wait (process wait-for buffer decode callback)
-  (save-excursion
-    (set-buffer (process-buffer process))
+  (with-current-buffer (process-buffer process)
     (unless nntp-inside-change-function
       (erase-buffer))
     (setq nntp-process-wait-for wait-for
@@ -1386,8 +1388,7 @@ password contained in '~/.nntp-authinfo'."
       (setq after-change-functions '(nntp-after-change-function)))))
 
 (defun nntp-async-trigger (process)
-  (save-excursion
-    (set-buffer (process-buffer process))
+  (with-current-buffer (process-buffer process)
     (when nntp-process-callback
       ;; do we have an error message?
       (goto-char nntp-process-start-point)
@@ -1412,8 +1413,7 @@ password contained in '~/.nntp-authinfo'."
            (let ((buf (current-buffer))
                  (start nntp-process-start-point)
                  (decode nntp-process-decode))
-             (save-excursion
-               (set-buffer nntp-process-to-buffer)
+             (with-current-buffer nntp-process-to-buffer
                (goto-char (point-max))
                (save-restriction
                  (narrow-to-region (point) (point))
@@ -1477,8 +1477,7 @@ password contained in '~/.nntp-authinfo'."
       (cond ((not entry)
              (nntp-report "Server closed connection"))
             ((not (equal group (caddr entry)))
-             (save-excursion
-               (set-buffer (process-buffer (car entry)))
+             (with-current-buffer (process-buffer (car entry))
                (erase-buffer)
                (nntp-send-command "^[245].*\n" "GROUP" group)
                (setcar (cddr entry) group)
@@ -1678,8 +1677,7 @@ password contained in '~/.nntp-authinfo'."
        ;; We try them all until we get at positive response.
        (while (and commands (eq nntp-server-xover 'try))
          (nntp-send-command-nodelete "\r?\n\\.\r?\n" (car commands) range)
-         (save-excursion
-           (set-buffer nntp-server-buffer)
+         (with-current-buffer nntp-server-buffer
            (goto-char (point-min))
            (and (looking-at "[23]")    ; No error message.
                 ;; We also have to look at the lines.  Some buggy
@@ -1700,6 +1698,7 @@ password contained in '~/.nntp-authinfo'."
 (defun nntp-find-group-and-number (&optional group)
   (save-excursion
     (save-restriction
+      ;; FIXME: This is REALLY FISHY: set-buffer after save-restriction?!?
       (set-buffer nntp-server-buffer)
       (narrow-to-region (goto-char (point-min))
                        (or (search-forward "\n\n" nil t) (point-max)))
@@ -1804,9 +1803,21 @@ via telnet.")
 (defvoo nntp-telnet-passwd nil
   "Password to use to log in via telnet with.")
 
+(defun nntp-service-to-port (svc)
+  (cond
+   ((integerp svc) (number-to-string svc))
+   ((string-match "\\`[[:digit:]]\\'" svc) svc)
+   (t
+    (with-temp-buffer
+      (ignore-errors (insert-file-contents "/etc/services"))
+      (goto-char (point-min))
+      (if (re-search-forward (concat "^" (regexp-quote svc)
+                                     "[ \t]+\\([[:digit:]]+\\)/tcp"))
+          (match-string 1)
+        svc)))))
+
 (defun nntp-open-telnet (buffer)
-  (save-excursion
-    (set-buffer buffer)
+  (with-current-buffer buffer
     (erase-buffer)
     (let ((proc (apply
                 'start-process
@@ -1862,8 +1873,7 @@ via telnet.")
                (apply 'start-process
                       "nntpd" buffer nntp-rlogin-program nntp-address
                       nntp-rlogin-parameters))))
-    (save-excursion
-      (set-buffer buffer)
+    (with-current-buffer buffer
       (nntp-wait-for-string "^\r*20[01]")
       (beginning-of-line)
       (delete-region (point-min) (point))
@@ -1876,6 +1886,8 @@ via telnet.")
 
 (defun nntp-open-telnet-stream (buffer)
   "Open a nntp connection by telnet'ing the news server.
+`nntp-open-netcat-stream' is recommended in place of this function
+because it is more reliable.
 
 Please refer to the following variables to customize the connection:
 - `nntp-pre-command',
@@ -1887,15 +1899,12 @@ Please refer to the following variables to customize the connection:
   (let ((command `(,nntp-telnet-command
                   ,@nntp-telnet-switches
                   ,nntp-address
-                  ,(if (integerp nntp-port-number)
-                       (number-to-string nntp-port-number)
-                     nntp-port-number)))
+                  ,(nntp-service-to-port nntp-port-number)))
        proc)
     (and nntp-pre-command
         (push nntp-pre-command command))
     (setq proc (apply 'start-process "nntpd" buffer command))
-    (save-excursion
-      (set-buffer buffer)
+    (with-current-buffer buffer
       (nntp-wait-for-string "^\r*20[01]")
       (beginning-of-line)
       (delete-region (point-min) (point))
@@ -1905,6 +1914,8 @@ Please refer to the following variables to customize the connection:
   "Open a connection to an nntp server through an intermediate host.
 First rlogin to the remote host, and then telnet the real news server
 from there.
+`nntp-open-via-rlogin-and-netcat' is recommended in place of this function
+because it is more reliable.
 
 Please refer to the following variables to customize the connection:
 - `nntp-pre-command',
@@ -1929,13 +1940,10 @@ Please refer to the following variables to customize the connection:
     (and nntp-pre-command
         (push nntp-pre-command command))
     (setq proc (apply 'start-process "nntpd" buffer command))
-    (save-excursion
-      (set-buffer buffer)
+    (with-current-buffer buffer
       (nntp-wait-for-string "^r?telnet")
       (process-send-string proc (concat "open " nntp-address " "
-                                       (if (integerp nntp-port-number)
-                                           (number-to-string nntp-port-number)
-                                         nntp-port-number)
+                                       (nntp-service-to-port nntp-port-number)
                                        "\n"))
       (nntp-wait-for-string "^\r*20[01]")
       (beginning-of-line)
@@ -1961,26 +1969,46 @@ Please refer to the following variables to customize the connection:
 - `nntp-via-rlogin-command-switches',
 - `nntp-via-user-name',
 - `nntp-via-address',
-- `nntp-via-netcat-command',
-- `nntp-via-netcat-switches',
+- `nntp-netcat-command',
+- `nntp-netcat-switches',
 - `nntp-address',
-- `nntp-port-number',
-- `nntp-end-of-line'."
+- `nntp-port-number'."
   (let ((command `(,@(when nntp-pre-command
                       (list nntp-pre-command))
                   ,nntp-via-rlogin-command
-                  ,@(when nntp-via-rlogin-command-switches
-                      nntp-via-rlogin-command-switches)
+                  ,@nntp-via-rlogin-command-switches
                   ,@(when nntp-via-user-name
                       (list "-l" nntp-via-user-name))
                   ,nntp-via-address
-                  ,nntp-via-netcat-command
-                  ,@nntp-via-netcat-switches
+                  ,nntp-netcat-command
+                  ,@nntp-netcat-switches
                   ,nntp-address
-                  ,(if (integerp nntp-port-number)
-                       (number-to-string nntp-port-number)
-                     nntp-port-number))))
-    (apply 'start-process "nntpd" buffer command)))
+                  ,(nntp-service-to-port nntp-port-number))))
+    ;; A non-nil connection type results in mightily odd behavior where
+    ;; (process-send-string proc "\^M") ends up sending a "\n" to the
+    ;; ssh process.  --Stef
+    ;; Also a nil connection allow ssh-askpass to work under X11.
+    (let ((process-connection-type nil))
+      (apply 'start-process "nntpd" buffer command))))
+
+(defun nntp-open-netcat-stream (buffer)
+  "Open a connection to an nntp server through netcat.
+I.e. use the `nc' command rather than Emacs's builtin networking code.
+
+Please refer to the following variables to customize the connection:
+- `nntp-pre-command',
+- `nntp-netcat-command',
+- `nntp-netcat-switches',
+- `nntp-address',
+- `nntp-port-number'."
+  (let ((command `(,nntp-netcat-command
+                  ,@nntp-netcat-switches
+                   ,nntp-address
+                   ,(nntp-service-to-port nntp-port-number))))
+    (and nntp-pre-command (push nntp-pre-command command))
+    (let ((process-connection-type nil)) ;See `nntp-open-via-rlogin-and-netcat'.
+      (apply 'start-process "nntpd" buffer command))))
 
 (defun nntp-open-via-telnet-and-telnet (buffer)
   "Open a connection to an nntp server through an intermediate host.
@@ -2001,8 +2029,7 @@ Please refer to the following variables to customize the connection:
 - `nntp-address',
 - `nntp-port-number',
 - `nntp-end-of-line'."
-  (save-excursion
-    (set-buffer buffer)
+  (with-current-buffer buffer
     (erase-buffer)
     (let ((command `(,nntp-via-telnet-command ,@nntp-via-telnet-switches))
          (case-fold-search t)
@@ -2039,9 +2066,7 @@ Please refer to the following variables to customize the connection:
                                     ,nntp-telnet-command
                                     ,@nntp-telnet-switches
                                     ,nntp-address
-                                    ,(if (integerp nntp-port-number)
-                                         (number-to-string nntp-port-number)
-                                       nntp-port-number))))
+                                    ,(nntp-service-to-port nntp-port-number))))
          (process-send-string proc
                               (concat (mapconcat 'identity
                                                  real-telnet-command " ")
@@ -2151,5 +2176,5 @@ Please refer to the following variables to customize the connection:
 
 (provide 'nntp)
 
-;;; arch-tag: 8655466a-b1b5-4929-9c45-7b1b2e767271
+;; arch-tag: 8655466a-b1b5-4929-9c45-7b1b2e767271
 ;;; nntp.el ends here
index ffa246c..a924c81 100644 (file)
 ;; coding: iso-8859-1
 ;; End:
 
-;;; arch-tag: ab6bfc45-8fe1-4647-9c78-41050eb152b8
+;; arch-tag: ab6bfc45-8fe1-4647-9c78-41050eb152b8
 ;;; nnultimate.el ends here
index 8e4faf2..09d8b46 100644 (file)
@@ -812,5 +812,5 @@ based on the marks on the component groups."
 
 (provide 'nnvirtual)
 
-;;; arch-tag: ca8c8ad9-1bd8-4b0f-9722-90dc645a45f5
+;; arch-tag: ca8c8ad9-1bd8-4b0f-9722-90dc645a45f5
 ;;; nnvirtual.el ends here
index 36dec52..3376df9 100644 (file)
 
 (provide 'nnwarchive)
 
-;;; arch-tag: 1ab7a15c-777a-40e0-95c0-0c41b3963578
+;; arch-tag: 1ab7a15c-777a-40e0-95c0-0c41b3963578
 ;;; nnwarchive.el ends here
index 56a287e..83b2306 100644 (file)
@@ -294,12 +294,12 @@ Valid types include `google', `dejanews', and `gmane'.")
   "Initialize buffers and such."
   (unless (gnus-buffer-live-p nnweb-buffer)
     (setq nnweb-buffer
-         (save-excursion
-           (mm-with-unibyte
-             (nnheader-set-temp-buffer
-              (format " *nnweb %s %s %s*"
-                      nnweb-type nnweb-search server))
-             (current-buffer))))))
+         (save-current-buffer
+            (nnheader-set-temp-buffer
+             (format " *nnweb %s %s %s*"
+                     nnweb-type nnweb-search server))
+            (mm-disable-multibyte)
+            (current-buffer)))))
 
 ;;;
 ;;; groups.google.com
@@ -544,7 +544,11 @@ Valid types include `google', `dejanews', and `gmane'.")
 (defun nnweb-insert-html (parse)
   "Insert HTML based on a w3 parse tree."
   (if (stringp parse)
-      (insert (nnheader-string-as-multibyte parse))
+      ;; We used to call nnheader-string-as-multibyte here, but it cannot
+      ;; be right, so I removed it.  If a bug shows up because of this change,
+      ;; please do not blindly revert the change, but help me find the real
+      ;; cause of the bug instead.  --Stef
+      (insert parse)
     (insert "<" (symbol-name (car parse)) " ")
     (insert (mapconcat
             (lambda (param)
@@ -610,5 +614,5 @@ Valid types include `google', `dejanews', and `gmane'.")
 
 (provide 'nnweb)
 
-;;; arch-tag: f59307eb-c90f-479f-b7d2-dbd8bf51b697
+;; arch-tag: f59307eb-c90f-479f-b7d2-dbd8bf51b697
 ;;; nnweb.el ends here
index 51e5833..6c439d4 100644 (file)
 ;; coding: iso-8859-1
 ;; End:
 
-;;; arch-tag: d813966a-4211-4557-ad11-d1ac2bc86536
+;; arch-tag: d813966a-4211-4557-ad11-d1ac2bc86536
 ;;; nnwfm.el ends here
index 2418338..3479851 100644 (file)
@@ -536,5 +536,5 @@ into a Unicode string.  PASSWD is truncated to 128 bytes if longer."
 
 (provide 'ntlm)
 
-;;; arch-tag: 348ace18-f8e2-4176-8fe9-d9ab4e96f296
+;; arch-tag: 348ace18-f8e2-4176-8fe9-d9ab4e96f296
 ;;; ntlm.el ends here
index 036f32f..4894c8f 100644 (file)
@@ -1,7 +1,7 @@
 ;;; parse-time.el --- parsing time strings
 
-;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+;;   2008  Free Software Foundation, Inc.
 
 ;; Author: Erik Naggum <erik@naggum.no>
 ;; Keywords: util
@@ -187,7 +187,7 @@ unknown are returned as nil."
       (let ((parse-time-elt (pop temp))
            (rules parse-time-rules)
            (exit nil))
-       (while (and (not (null rules)) (not exit))
+       (while (and rules (not exit))
          (let* ((rule (pop rules))
                 (slots (pop rule))
                 (predicate (pop rule))
@@ -219,5 +219,5 @@ unknown are returned as nil."
 
 (provide 'parse-time)
 
-;;; arch-tag: 07066094-45a8-4c68-b307-86195e2c1103
+;; arch-tag: 07066094-45a8-4c68-b307-86195e2c1103
 ;;; parse-time.el ends here
index e937c45..01757bd 100644 (file)
@@ -132,5 +132,5 @@ The password is removed by a timer after `password-cache-expiry' seconds."
 
 (provide 'password-cache)
 
-;;; arch-tag: ab160494-16c8-4c68-a4a1-73eebf6686e5
+;; arch-tag: ab160494-16c8-4c68-a4a1-73eebf6686e5
 ;;; password-cache.el ends here
index f5eb2f1..7740ce7 100644 (file)
@@ -96,5 +96,5 @@ Whether the passphrase is cached at all is controlled by
 
 (provide 'pgg-def)
 
-;;; arch-tag: c425f3ab-ed75-4055-bb46-431a418c94b7
+;; arch-tag: c425f3ab-ed75-4055-bb46-431a418c94b7
 ;;; pgg-def.el ends here
index 85a4e17..f481ca7 100644 (file)
@@ -405,5 +405,5 @@ passphrase cache or user."
 
 (provide 'pgg-gpg)
 
-;;; arch-tag: 2aa5d5d8-93a0-4865-9312-33e29830e000
+;; arch-tag: 2aa5d5d8-93a0-4865-9312-33e29830e000
 ;;; pgg-gpg.el ends here
index 813b111..be14e22 100644 (file)
 
 (provide 'pgg-parse)
 
-;;; arch-tag: 16c2eb82-1313-4a7c-a70f-420709b5b43e
+;; arch-tag: 16c2eb82-1313-4a7c-a70f-420709b5b43e
 ;;; pgg-parse.el ends here
index 599beb1..44a85ad 100644 (file)
@@ -256,5 +256,5 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
 
 (provide 'pgg-pgp5)
 
-;;; arch-tag: 3dbd1073-6b3a-466c-9f55-5c587ffa6d7b
+;; arch-tag: 3dbd1073-6b3a-466c-9f55-5c587ffa6d7b
 ;;; pgg-pgp5.el ends here
index 3de9b5e..c50a644 100644 (file)
@@ -599,5 +599,5 @@ within the region."
 
 (provide 'pgg)
 
-;;; arch-tag: 9cc705dd-1e6a-4c90-8dce-c3561f9a2cf4
+;; arch-tag: 9cc705dd-1e6a-4c90-8dce-c3561f9a2cf4
 ;;; pgg.el ends here
index ad442cf..85126e0 100644 (file)
@@ -613,5 +613,5 @@ and close the connection."
 
 (provide 'pop3)
 
-;;; arch-tag: 2facc142-1d74-498e-82af-4659b64cac12
+;; arch-tag: 2facc142-1d74-498e-82af-4659b64cac12
 ;;; pop3.el ends here
index 4aedaa0..5d25e05 100644 (file)
@@ -164,5 +164,5 @@ encode lines starting with \"From\"."
 
 (provide 'qp)
 
-;;; arch-tag: db89e52a-e4a1-4b69-926f-f434f04216ba
+;; arch-tag: db89e52a-e4a1-4b69-926f-f434f04216ba
 ;;; qp.el ends here
index 6c0c2a5..ca8a116 100644 (file)
@@ -194,5 +194,5 @@ ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc"
 
 (provide 'rfc1843)
 
-;;; arch-tag: 5149c301-a6ca-4731-9c9d-ba616e2cb687
+;; arch-tag: 5149c301-a6ca-4731-9c9d-ba616e2cb687
 ;;; rfc1843.el ends here
index 06cfe86..1b79fc7 100644 (file)
@@ -41,5 +41,5 @@
 
 (provide 'rfc2045)
 
-;;; arch-tag: 9ca54127-97bc-432c-b6e2-8c59cadba306
+;; arch-tag: 9ca54127-97bc-432c-b6e2-8c59cadba306
 ;;; rfc2045.el ends here
index 45f251d..fc18466 100644 (file)
@@ -1094,17 +1094,17 @@ strings are stripped."
   "Decode MIME-encoded STRING and return the result.
 If ADDRESS-MIME is non-nil, strip backslashes which precede characters
 other than `\"' and `\\' in quoted strings."
-  (let ((m (mm-multibyte-p)))
+  ;; (let ((m (mm-multibyte-p)))
     (if (string-match "=\\?" string)
        (with-temp-buffer
-         ;; Fixme: This logic is wrong, but seems to be required by
-         ;; Gnus summary buffer generation.  The value of `m' depends
-         ;; on the current buffer, not global multibyteness or that
-         ;; of the string.  Also the string returned should always be
-         ;; multibyte in a multibyte session, i.e. the buffer should
-         ;; be multibyte before `buffer-string' is called.
-         (when m
-           (mm-enable-multibyte))
+          ;; We used to only call mm-enable-multibyte if `m' is non-nil,
+          ;; but this can't be the right criterion.  Don't just revert this
+          ;; change if it encounters a bug.  Please help me fix it
+          ;; right instead.  --Stef
+          ;; The string returned should always be multibyte in a multibyte
+         ;; session, i.e. the buffer should be multibyte before
+         ;; `buffer-string' is called.
+          (mm-enable-multibyte)
          (insert string)
          (inline
            (rfc2047-decode-region (point-min) (point-max) address-mime))
@@ -1118,7 +1118,7 @@ other than `\"' and `\\' in quoted strings."
                (rfc2047-strip-backslashes-in-quoted-strings)
                (buffer-string))))
       ;; Fixme: As above, `m' here is inappropriate.
-      (if (and m
+      (if (and ;; m
               mail-parse-charset
               (not (eq mail-parse-charset 'us-ascii))
               (not (eq mail-parse-charset 'gnus-decoded)))
@@ -1134,9 +1134,9 @@ other than `\"' and `\\' in quoted strings."
          (if (and (fboundp 'detect-coding-string)
                   ;; string is purely ASCII
                   (eq (detect-coding-string string t) 'undecided))
-             string
-           (mm-decode-coding-string string mail-parse-charset))
-       (mm-string-as-multibyte string)))))
+              string
+            (mm-decode-coding-string string mail-parse-charset))
+        (mm-string-to-multibyte string)))) ;; )
 
 (defun rfc2047-decode-address-string (string)
   "Decode MIME-encoded STRING and return the result.
@@ -1161,5 +1161,5 @@ strings are stripped."
 
 (provide 'rfc2047)
 
-;;; arch-tag: a07fe3d4-22b5-4c4a-bd89-b1f82d5d36f6
+;; arch-tag: a07fe3d4-22b5-4c4a-bd89-b1f82d5d36f6
 ;;; rfc2047.el ends here
index 43bbae9..e88faf7 100644 (file)
 
 (provide 'rfc2104)
 
-;;; arch-tag: cf671d5c-a45f-4a09-815e-704e59e43950
+;; arch-tag: cf671d5c-a45f-4a09-815e-704e59e43950
 ;;; rfc2104.el ends here
index 93282c0..498affd 100644 (file)
@@ -298,5 +298,5 @@ the result of this function."
 
 (provide 'rfc2231)
 
-;;; arch-tag: c3ab751d-d108-406a-b301-68882ad8cd63
+;; arch-tag: c3ab751d-d108-406a-b301-68882ad8cd63
 ;;; rfc2231.el ends here
index 911c8fe..e637f09 100644 (file)
@@ -48,5 +48,5 @@
 
 (provide 'sasl-cram)
 
-;;; arch-tag: 46cb281b-975a-4fe0-a39f-3018691b1b05
+;; arch-tag: 46cb281b-975a-4fe0-a39f-3018691b1b05
 ;;; sasl-cram.el ends here
index 85417df..c3c9e7f 100644 (file)
@@ -155,5 +155,5 @@ charset algorithm cipher-opts auth-param)."
 
 (provide 'sasl-digest)
 
-;;; arch-tag: 786e02ed-1bc4-4b3c-bf34-96c27e31084d
+;; arch-tag: 786e02ed-1bc4-4b3c-bf34-96c27e31084d
 ;;; sasl-digest.el ends here
index 699fd12..fcc1bbd 100644 (file)
@@ -64,5 +64,5 @@ challenge stored in the 2nd element of STEP.  Called from 'sasl-next-step."
 
 (provide 'sasl-ntlm)
 
-;;; arch-tag: 1d9164c1-1df0-418f-b7ab-360157fd05dc
+;; arch-tag: 1d9164c1-1df0-418f-b7ab-360157fd05dc
 ;;; sasl-ntlm.el ends here
index 000bca5..4b6616d 100644 (file)
@@ -269,5 +269,5 @@ It contain at least 64 bits of entropy."
 
 (provide 'sasl)
 
-;;; arch-tag: 8b3326fa-4978-4fda-93e2-cb2c6255f887
+;; arch-tag: 8b3326fa-4978-4fda-93e2-cb2c6255f887
 ;;; sasl.el ends here
index 532399b..6e022eb 100644 (file)
@@ -118,5 +118,5 @@ This mode is an extended emacs-lisp mode.
 
 (provide 'score-mode)
 
-;;; arch-tag: a74a416b-2505-4ad4-bc4e-a418c96b8845
+;; arch-tag: a74a416b-2505-4ad4-bc4e-a418c96b8845
 ;;; score-mode.el ends here
index c70b99c..de2f063 100644 (file)
@@ -88,16 +88,17 @@ If this variable is set to nil, use internal function only."
   :group 'sha1)
 
 (defun sha1-string-external (string &optional binary)
-  (let (prog args digest default-enable-multibyte-characters)
+  (let (prog args digest)
     (if (consp sha1-program)
        (setq prog (car sha1-program)
              args (cdr sha1-program))
       (setq prog sha1-program
            args nil))
     (with-temp-buffer
+      (set-buffer-multibyte nil)
       (insert string)
       (apply (function call-process-region)
-            (point-min)(point-max)
+            (point-min) (point-max)
             prog t t nil args)
       ;; SHA1 is 40 bytes long in hexadecimal form.
       (setq digest (buffer-substring (point-min)(+ (point-min) 40))))
index 0a7c8e9..c39a6bb 100644 (file)
@@ -706,5 +706,5 @@ password is remembered in the buffer."
 
 (provide 'sieve-manage)
 
-;;; arch-tag: 321c4640-1371-4495-9baf-8ccb71dd5bd1
+;; arch-tag: 321c4640-1371-4495-9baf-8ccb71dd5bd1
 ;; sieve-manage.el ends here
index 8dd94ae..95d488f 100644 (file)
@@ -214,5 +214,5 @@ Turning on Sieve mode runs `sieve-mode-hook'."
 
 (provide 'sieve-mode)
 
-;;; arch-tag: 3b8ab76d-065d-4c52-b1e8-ab2ec21f2ace
+;; arch-tag: 3b8ab76d-065d-4c52-b1e8-ab2ec21f2ace
 ;; sieve-mode.el ends here
index c32c44a..a0c3d26 100644 (file)
@@ -382,5 +382,5 @@ Server  : " server ":" (or port "2000") "
 
 (provide 'sieve)
 
-;;; arch-tag: 7f6a6d94-94e1-4654-ab9a-aee21b9b8a94
+;; arch-tag: 7f6a6d94-94e1-4654-ab9a-aee21b9b8a94
 ;; sieve.el ends here
index 7937679..3847603 100644 (file)
@@ -228,5 +228,5 @@ With arg, turn displaying on if and only if arg is positive."
 
 (provide 'smiley)
 
-;;; arch-tag: 5beb161b-4321-40af-8ac9-876afb8ee818
+;; arch-tag: 5beb161b-4321-40af-8ac9-876afb8ee818
 ;;; smiley.el ends here
index 7a89473..ddf39cc 100644 (file)
@@ -731,5 +731,5 @@ The following commands are available:
 
 (provide 'smime)
 
-;;; arch-tag: e3f9b938-5085-4510-8a11-6625269c9a9e
+;; arch-tag: e3f9b938-5085-4510-8a11-6625269c9a9e
 ;;; smime.el ends here
index 2f8590a..c4383d1 100644 (file)
@@ -361,5 +361,5 @@ Process queued spam reports."
 
 (provide 'spam-report)
 
-;;; arch-tag: f6683295-ec89-4ab5-8803-8cc842293022
+;; arch-tag: f6683295-ec89-4ab5-8803-8cc842293022
 ;;; spam-report.el ends here.
index bd6c6a2..7b6df70 100644 (file)
@@ -673,5 +673,5 @@ COUNT defaults to 5"
 
 (provide 'spam-stat)
 
-;;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554
+;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554
 ;;; spam-stat.el ends here
index 70192e0..d9e18d2 100644 (file)
@@ -71,5 +71,5 @@
 
 (provide 'spam-wash)
 
-;;; arch-tag: 3c7f94a7-c96d-4c77-bb59-950df12bc85f
+;; arch-tag: 3c7f94a7-c96d-4c77-bb59-950df12bc85f
 ;;; spam-wash.el ends here
index f51453e..6b2a647 100644 (file)
@@ -2946,5 +2946,5 @@ installed through `spam-necessary-extra-headers'."
 
 (provide 'spam)
 
-;;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f
+;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f
 ;;; spam.el ends here
index bffd268..fbacb91 100644 (file)
@@ -299,5 +299,5 @@ GNUTLS requires a port number."
 
 (provide 'starttls)
 
-;;; arch-tag: 648b3bd8-63bd-47f5-904c-7c819aea2297
+;; arch-tag: 648b3bd8-63bd-47f5-904c-7c819aea2297
 ;;; starttls.el ends here
index e4cd4e5..413a01c 100644 (file)
@@ -97,7 +97,7 @@ and type 2 is the list (HIGH LOW MICRO)."
 
 ;;;###autoload
 (defun date-to-time (date)
-  "Parse a string that represents a date-time and return a time value."
+  "Parse a string DATE that represents a date-time and return a time value."
   (condition-case ()
       (apply 'encode-time
             (parse-time-string
@@ -160,7 +160,7 @@ TIME should be either a time value or a date-time string."
 
 ;;;###autoload
 (defun time-subtract (t1 t2)
-  "Subtract two time values.
+  "Subtract two time values, T1 minus T2.
 Return the difference in the format of a time value."
   (with-decoded-time-value ((high low micro type t1)
                            (high2 low2 micro2 type2 t2))
@@ -178,7 +178,7 @@ Return the difference in the format of a time value."
 
 ;;;###autoload
 (defun time-add (t1 t2)
-  "Add two time values.  One should represent a time difference."
+  "Add two time values T1 and T2.  One should represent a time difference."
   (with-decoded-time-value ((high low micro type t1)
                            (high2 low2 micro2 type2 t2))
     (setq high (+ high high2)
@@ -248,7 +248,7 @@ The number of days will be returned as a floating point number."
 
 ;;;###autoload
 (defun safe-date-to-time (date)
-  "Parse a string that represents a date-time and return a time value.
+  "Parse a string DATE that represents a date-time and return a time value.
 If DATE is malformed, return a time value of zeros."
   (condition-case ()
       (date-to-time date)
@@ -335,5 +335,5 @@ This function does not work for SECONDS greater than `most-positive-fixnum'."
 
 (provide 'time-date)
 
-;;; arch-tag: addcf07b-b20a-465b-af72-550b8ac5190f
+;; arch-tag: addcf07b-b20a-465b-af72-550b8ac5190f
 ;;; time-date.el ends here
index a0a9d7b..4cdc00c 100644 (file)
@@ -295,5 +295,5 @@ match `%s'. Connect anyway? " host))))))
 
 (provide 'tls)
 
-;;; arch-tag: 5596d1c4-facc-4bc4-94a9-9863b928d7ac
+;; arch-tag: 5596d1c4-facc-4bc4-94a9-9863b928d7ac
 ;;; tls.el ends here
index 269da5f..4eb15a9 100644 (file)
@@ -232,5 +232,5 @@ Characters are in raw byte pairs in narrowed buffer."
 
 (provide 'utf7)
 
-;;; arch-tag: 96078b55-85c7-4161-aed2-932c24b282c7
+;; arch-tag: 96078b55-85c7-4161-aed2-932c24b282c7
 ;;; utf7.el ends here
index 574ad0e..ff238fa 100644 (file)
@@ -217,14 +217,14 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
                          result))))
          (skip-chars-forward non-data-chars end))
        (if file-name
-           (let (default-enable-multibyte-characters)
-             (with-temp-file file-name
-               (insert (apply 'concat (nreverse result)))))
+            (with-temp-file file-name
+              (set-buffer-multibyte nil)
+              (insert (apply 'concat (nreverse result))))
          (or (markerp end) (setq end (set-marker (make-marker) end)))
          (goto-char start)
          (if enable-multibyte-characters
-             (mapc #'(lambda (x) (insert (uudecode-string-to-multibyte x)))
-                   (nreverse result))
+             (dolist (x (nreverse result))
+                (insert (uudecode-string-to-multibyte x)))
            (insert (apply 'concat (nreverse result))))
          (delete-region (point) end))))))
 
@@ -238,5 +238,5 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
 
 (provide 'uudecode)
 
-;;; arch-tag: e1f09ed5-62b4-4677-9f13-4e81c4fe8ce3
+;; arch-tag: e1f09ed5-62b4-4677-9f13-4e81c4fe8ce3
 ;;; uudecode.el ends here
index 894b7d2..fc6f6b9 100644 (file)
 
 (provide 'webmail)
 
-;;; arch-tag: f75a4558-a8f6-46ec-b1c3-7a6434b3dd71
+;; arch-tag: f75a4558-a8f6-46ec-b1c3-7a6434b3dd71
 ;;; webmail.el ends here
index a1cfa99..7cf5281 100644 (file)
 
 (provide 'yenc)
 
-;;; arch-tag: 74df17e8-6fa8-4071-9f7d-54d548d79d9a
+;; arch-tag: 74df17e8-6fa8-4071-9f7d-54d548d79d9a
 ;;; yenc.el ends here
index 318220d..c778f5a 100644 (file)
        (Formatting Fonts): Add index entries for gnus-mouse-face, gnus-face-0,
        gnus-balloon-face-0 and the corresponding format specifiers.
 
+2008-03-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * gnus.texi (Example Methods, Direct Functions, Indirect Functions)
+       (Common Variables): Give precedence to the netcat methods over the
+       telnet methods, and mention that they are more reliable.
+
 2008-03-08  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus.texi (Mail Source Customization, Gnus Development, Oort Gnus):
        (Misc Group Stuff): Move gnus-group-name-charset-method-alist and
        gnus-group-name-charset-group-alist to Non-ASCII Group Names node.
 
-2007-08-31  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+2007-08-31  Michaël Cadilhac  <michael@cadilhac.name>
 
        * gnus.texi (Mail Source Specifiers, IMAP): Add a notice on the need to
        clean the output of the program `imap-shell-program'.
 
        * Relicense all FSF files to GPLv3 or later.
 
-2007-07-20  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+2007-07-20  Michaël Cadilhac  <michael@cadilhac.name>
 
        * gnus.texi (RSS): Document nnrss-ignore-article-fields.
 
 
        * gnus.texi (Limiting): Document gnus-summary-limit-to-address.
 
-2007-05-11  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+2007-05-11  Michaël Cadilhac  <michael@cadilhac.name>
 
        * gnus.texi (Group Maneuvering): Document
        `gnus-summary-next-group-on-exit'.
        * gnus.texi (Customizing Articles): Add index entries for all
        gnus-treat-* variables.
 
-2006-12-29  Jouni K. Sepp\e,Ad\e(Bnen  <jks@iki.fi>
+2006-12-29  Jouni K. Seppänen  <jks@iki.fi>
 
        * gnus.texi (IMAP): Fix incorrect explanation of
        nnimap-search-uids-not-since-is-evil in documentation for
        * gnus.texi (Spam Package Configuration Examples): Don't encourage to
        rebind C-s.
 
-2006-12-26  Jouni K. Sepp\e,Ad\e(Bnen  <jks@iki.fi>
+2006-12-26  Jouni K. Seppänen  <jks@iki.fi>
 
        * gnus.texi (Group Parameters, Group Maintenance, Topic Commands)
        (Mail Group Commands, Expiring Mail, IMAP): Add index entries for
 
        * gnus.texi (Summary Buffer Lines): Add `*'.
 
-2006-04-07  Jochen K\e,A|\e(Bpper  <jochen@fhi-berlin.mpg.de>
+2006-04-07  Jochen Küpper  <jochen@fhi-berlin.mpg.de>
 
        * gnus.texi (Group Parameters): Mention
        gnus-permanently-visible-groups.
        * message.texi, gnus.texi: Update copyright.
 
        * xml2texi.scm (+tag-for-gnus-faq-texi+): New variable.
-       (transform): Use it.  From Karl Pfl\e,Ad\e(Bsterer <sigurd@12move.de> with
+       (transform): Use it.  From Karl Pflästerer <sigurd@12move.de> with
        minor modifications.
        (boilerplate): Update copyright for the output file.
 
        (transform): Avoid redundant entries in @urefs.
        (format-node): Don't insert optional arguments of @node.
 
-2005-03-20  Karl Pfl\e,Ad\e(Bsterer  <sigurd@12move.de>
+2005-03-20  Karl Pflästerer  <sigurd@12move.de>
 
        * xml2texi.scm, xml2texi.sh: New files.  PLT Scheme program to
        convert FAQ from xml to texi.
        * Makefile.in (.texi): Use LC_ALL instead of LANG.
        (makeinfo): Ditto.
 
-2005-01-04  Jochen K\e,A|\e(Bpper  <jochen@fhi-berlin.mpg.de>
+2005-01-04  Jochen Küpper  <jochen@fhi-berlin.mpg.de>
 
        * gnus.texi (Group Parameters): Slight extension of sieve
        parameter description.
 
        * texi2latex.el (latexi-translate-file): Support accents.
 
-       * gnus.texi: Don't use 8bit chars (except \e,A,\e(B).
+       * gnus.texi: Don't use 8bit chars (except ¬).
 
        * emacs-mime.texi: do.
 
        * gnus.texi (Customizing Articles): Ditto.
        * gnus.texi (Image Enhancements): Put the Face node into the menu.
 
-2003-06-17  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
+2003-06-17  Kai Großjohann  <kai.grossjohann@gmx.net>
 
        * gnus.texi (Splitting Mail): Add "splitting" entry and concept
-       index entries.  Small patch from Karl Pfl\e,Ad\e(Bsterer
+       index entries.  Small patch from Karl Pflästerer
        <sigurd@12move.de>.
 
 2003-06-15  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus.texi (Daemons): Fixed typo.
 
-2003-06-15  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
+2003-06-15  Kai Großjohann  <kai.grossjohann@gmx.net>
 
        * message.texi (Message Headers): Extend
        `message-subject-re-regexp' example.  From Niklas Morberg
 
        * gnus.texi (Oort Gnus): Fix typo.
 
-2003-05-03  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
+2003-05-03  Kai Großjohann  <kai.grossjohann@gmx.net>
 
        * gnus.texi (Agent Basics): Explain that some servers can be
        agentized, whereas others aren't.
 
        * gnus.texi (Server Variables): Added server parameters and index.
 
-2003-04-21  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
+2003-04-21  Kai Großjohann  <kai.grossjohann@gmx.net>
 
        * gnus.texi (Group Parameters): Pointer to
        gnus-newsgroup-variables.
 
        * gnus.texi (Picons): Update.
 
-2003-01-22  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@uni-duisburg.de>
+2003-01-22  Kai Großjohann  <kai.grossjohann@uni-duisburg.de>
 
        * gnus.texi (Agent Expiry, Agent Variables): Don't use @pxref for
        index entries.
        * message.texi (Message Headers): Added example.
        (Message Headers): Addition.
 
-2002-12-31  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@uni-duisburg.de>
+2002-12-31  Kai Großjohann  <kai.grossjohann@uni-duisburg.de>
 
        * gnus.texi (Top): Add pointers to related manuals.  Suggested by
        Reiner Steib.
 
        * gnus.texi (Mail): Explain nil value of gnus-uu-digest-headers.
 
-2002-12-10  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@uni-duisburg.de>
+2002-12-10  Kai Großjohann  <kai.grossjohann@uni-duisburg.de>
 
        * gnus.texi (Posting Styles): Clarify the `(header MATCH REGEXP)'
        case.
        (Back End Interface): Mention nnnotbackends.  Suggested by Jan
        Rychter.
 
-2002-11-29  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@uni-duisburg.de>
+2002-11-29  Kai Großjohann  <kai.grossjohann@uni-duisburg.de>
 
        * gnus.texi (MIME Commands): Document gnus-inhibit-mime-unbuttonizing.
 
        * gnus.texi (Expiring in IMAP): Add.
        (Group Parameters): Add reference.
 
-2002-11-16  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@uni-duisburg.de>
+2002-11-16  Kai Großjohann  <kai.grossjohann@uni-duisburg.de>
 
        * gnus.texi (Expiring Mail): Give summary on difference between
        auto-expire and total-expire and provide information for choosing
        * gnus.texi (RSS): Add gnus-summary-mark-as-read-forward into the
        example code. From Christoph Conrad <christoph.conrad@gmx.de>.
 
-2002-10-17  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-10-17  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Other Marks): Document gnus-downloadable-mark and
        gnus-undownloaded-mark.  Adapted idea from Sriram Karra
 
        * pgg.texi: New file.
 
-2002-10-03  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-10-03  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Group Information): Mention prefix argument for
        gnus-group-fetch-charter and gnus-group-fetch-control.
 
        * gnus.texi (A note on namespaces): New.
 
-2002-09-16  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-16  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Splitting Mail): "By default, splitting is performed
        on all incoming messages."  This sentence had a "not" too many.
        Explicitly say that `nnmail-resplit-incoming' has effect only for
        `directory' mail-sources entries.
 
-2002-09-15  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-15  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Mail Source Specifiers): Say "one-to-one
        correspondence" in the description of `directory'.
 
-2002-09-11  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-11  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Top, Summary Buffer): Add info to "Delayed Articles"
        menu line.
 
        * gnus.texi (Other Marks): Fix.
 
-2002-09-09  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-09  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Splitting Mail): Typo.
        (Comparing Mail Back Ends): Say "back end" instead of "backend".
 
        * gnus.texi (Article Buttons): Add.
 
-2002-09-09  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-09  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Splitting Mail): Document nnmail-resplit-incoming,
        xref to Mail Source Specifiers.
        (MIME Commands): Index gnus-article-decode-mime-words,
        gnus-article-decode-charset and gnus-mime-view-all-parts.
 
-2002-08-20  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-08-20  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Mail Source Specifiers): Mention variable
        nnmail-resplit-incoming under `directory' specifier.
 
-2002-08-18  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-08-18  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Summary Buffer Lines): Document the %k specifier.
 
 
        * gnus.texi (Summary Sorting): Document randomization.
 
-2002-07-28  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-07-28  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Web Searches): Added gmane and removed old
        non-functioning search engines.  From Niklas Morberg
        regenerate overviews via server buffer, and note to news admins
        about overview.fmt.
 
-2002-07-14  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-07-14  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Posting Styles): Fix example (it was using the To
        header instead of the From header).  From Christopher Splinter
 
        * gnus.texi (NNTP): Doc fix.
 
-2002-07-02  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-07-02  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Washing Mail): Document the shortcoming of
        nnmail-remove-leading-whitespace.
 
-2002-06-30  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-06-30  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * message.texi (News Headers): Include example for removing an
        entry from message-required-news-headers.
 
        * gnus.texi (NNTP): Add nntp-via-rlogin-command-switches.
 
-2002-06-27  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-06-27  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Mail Back End Variables): Document
        nnmail-cache-ignore-groups.  Xref Fancy Mail Splitting.
        (Fancy Mail Splitting): Mention nnmail-cache-ignore-groups and
        why it is useful.
 
-2002-06-25  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-06-25  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Fancy Mail Splitting): Include all necessary
        variables in the Lisp example.
 
        * gnus.texi (Loose Threads): Add gnus-simplify-all-whitespace.
 
-2002-05-08  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-05-08  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Mail-To-News Gateways): The default
        nngateway-header-transformation function inserts a "To" header,
        message-gen-unsubscribed-mft.
        From Karra <karra@cs.utah.edu>.
 
-2002-04-05  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-04-05  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Saving Articles): Add xref to Mail Group Commands
        because people might be interested in `B c' for saving articles.
 
        * message.texi (Various Commands): use the proper @point glyph.
 
-       * gnus.texi (Summary Mail Commands): \e,A_\e(B doesn't work.  A German
+       * gnus.texi (Summary Mail Commands): ß doesn't work.  A German
        spelling reform changed the correct spelling to "muss" anyway (I
        think).
 
-       * gnus.texi (Mail sources): \e,A'\e(B doesn't work. Use "section" instead.
+       * gnus.texi (Mail sources): § doesn't work. Use "section" instead.
 
        * gnus.texi (Mail Source Specifiers): use @url.
 
        * gnus.texi (Summary Mail Commands): advertise
        `gnus-summary-news-other-window'.
 
-2001-12-10  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-12-10  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Advanced Scoring Examples): Clarify that the
        examples are rules, not complete score files.
 
        * gnus.texi (Expiring Mail): Add.
 
-2001-12-05  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-12-05  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Splitting in IMAP): Typo.  From Colin Marquardt
        <c.marquardt@alcatel.de>.
        * message.texi (Security):
        * emacs-mime.texi (MML Definition): Add PGP.
 
-2001-11-09  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-11-09  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * message.texi (Movement): message-beginning-of-line.
 
        * gnus.texi (Posting Server): Use `native' instead of `nil' for
        posting to native server.
 
-2001-10-22  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-10-22  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * dir (File): Add standard explanation header.
 
-2001-10-21  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-10-21  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Mail Source Specifiers): Explain more explicitly what
        happens for the `directory' entries.  Say that mail from foo.spool
 
        * gnus.texi (Using MIME): s/mime/MIME/ for PDF version.
 
-2001-10-19  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-10-19  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Finding the News): Disrecommend nnspool for Leafnode
        users.
 
        * gnus.texi (MIME Commands): Add gnus-buttonized-mime-types.
 
-2001-09-08  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-09-08  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Topic Commands): Make this the first subsection of
        `Group Topics'.  Rearrange keys to mention the most important keys
        C-k/C-y.
        (Group Buffer): Add comment from Alex Schroeder as todo item.
 
-2001-09-06  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-09-06  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Fancy Mail Splitting): Mention `delete' near the
        explanation of `junk'.
        make a date format is `message-make-date', which should produce a
        time zone.
 
-2001-09-04  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-09-04  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Optional Backend Functions): More detail about the
        DATE arg for nnchoke-request-newgroups.  Reported by Paul Jarc.
 
-2001-09-01  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-09-01  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Hooking New Backends Into Gnus): Say where to put the
        call for gnus-declare-backend.  Add an index entry for
 
        * gnus.texi (Score Variables): Fix.
 
-2001-08-20  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-20  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Delayed Articles): New section.  Documents
        gnus-delay.el.
        (Positioning Point): New.
        (Tabulation): New.
 
-2001-08-19  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-19  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Getting Started Reading Mail): Use (nnml "") rather
        than (nnml "private") as the example server specification.  This
        Configuration'.  After all, we're not talking about Microsoft.
        Suggested by Barry Fishman.
 
-2001-08-11  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-11  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Summary Mail Commands): Remove duplicate explanation
        of `S W'.  Reported by Norbert Koch.
 
        * gnus.texi (Mail Backend Variables): Fix.
 
-2001-08-04  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-04  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Summary Buffer Lines): Mention `gnus-goto-colon'.
 
-2001-08-03  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-03  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Backend Interface): Explain about article numbers.
        Suggested by Paul Jarc.
        * gnus.texi (Fancy Mail Splitting): New variable
        nnmail-split-fancy-with-parent-ignore-groups
 
-2001-07-24  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-07-24  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Duplicates): Make split method regexp more specific,
        in case other `Gnus-Warning' headers are added in the future.
 
        * gnus.texi (Searching for Articles): Raw articles.
 
-2001-07-16  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-07-16  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * message.texi (Insertion): Refer to gnus-cite-attribution-suffix.
 
 
        * gnus.texi (MIME Commands): Add.
 
-2001-06-24  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-06-24  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Summary Score Commands): Say that some commands
        create ADAPT files.
 
-2001-06-23  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-06-23  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Duplicates): Contents of Gnus-Warning header have
        changed.  Reported by Peter J Acklam.
 
        * gnus-faq.texi (Frequently Asked Questions): Fix URL.
 
-2001-06-17  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-06-17  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Group Line Specification): Explain why %t is only an
        estimate.
        * gnus.texi: Remove a few The's.
        (RSS): New.
 
-2001-04-26  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-04-26  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Unread Articles): Say that dormants are similar to
        ticked.
 
-2001-04-13  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-04-13  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Sorting Groups): Note `C-k' and `C-y' for manually
        moving groups around.
 
        * message.texi (Security): Typos.
 
-2001-03-15  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-03-15  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Hiding Headers): Typos.  Reported by Sriram Karra
        <karra@cs.utah.edu>.
 
-2001-03-11  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-03-11  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * message.texi (Message Headers): Update doc for
        `message-generate-headers-first'.
 
        * infohack.el (infohack): Set max-lisp-eval-depth to 600+.
 
-2001-03-03  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-03-03  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Posting Styles): Posting styles have (NAME VALUE),
        not (NAME . VALUE).
 
        * gnus.texi (Optional Backend Functions): Fix case.
 
-2001-02-14  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-02-14  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Unread Articles): Say that Gnus itself never expires
        ticked articles.  Suggested by M D Greenhow
        * gnus.texi (Pterodactyl Gnus): Added.
        (Newest Features): Removed. Suggested by RMS.
 
-2001-02-08  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-02-08  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Group Parameters): Mention `G c' in addition to `G p'.
 
-2001-02-07  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-02-07  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (To From Newsgroups): Make it clear where to put the
        sample code.  Suggested by Dan Jacobson.
        * gnus.texi (Mail Source Specifiers, IMAP, Agent and IMAP):
        Improve IMAP discussion.
 
-2001-02-07  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-02-07  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * message.texi (Message Headers): `message-generate-headers-first'.
 
 
        * message.texi (Security): Requires OpenSSL 0.9.6+.
 
-2001-01-13  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-01-13  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Mail): Move explanation of
        `message-send-mail-partially-limit' to message.texi
 
        * gnus.texi (myself): Quote .
 
-2001-01-05  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-01-05  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Choosing Commands): Add xref for redisplaying the
        group.  Suggestion from Galen Boyer <galenboyer@yahoo.com>.
 
        * texi2latex.el (latexi-translate-file): Ignore anchor.
 
-2001-01-04  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-01-04  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Article Washing): Refer to `Customizing Articles' for
        permanent changes.  Suggested by Russell Marks (russel dot marks
        at ntlworld dot com).
 
-2001-01-03  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-01-03  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Article Washing): Mention `C-u g' as a sort of
        anti-washing.
 
        * texi2latex.el (latexi-translate-file): Understand uref.
 
-2000-12-30  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-12-30  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Selecting a Group): Explain in more detail, what a
        prefix arg means for SPC.  Refer people to M-g command from
        * gnus.texi (Adaptive Scoring): Use setq by Thomas Seck
        <tmseck@web.de>.
 
-2000-12-21  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-12-21  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Article Washing): Doc addition by Paul Stevenson
        <p.stevenson@surrey.ac.uk>.
 
        * gnus.texi (Archived Messages): Add.
 
-2000-11-20 Jochen K\e,A|\e(Bpper <jochen@pc1.uni-duesseldorf.de>
+2000-11-20 Jochen Küpper <jochen@pc1.uni-duesseldorf.de>
 
        * gnus.texi (Security): Fix typo.
 
        * emacs-mime.texi (MML Definition): Add sign, encrypt, keyfile and
        certfile.
 
-2000-11-07  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-11-07  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Mail Group Commands): `gnus-move-split-methods' uses
        group names as target, where `gnus-split-methods' uses file
 
        * gnus.texi: Doc fix.
 
-2000-11-01  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-11-01  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Fancy Mail Splitting): Explain
        `nnmail-split-fancy-with-parent'.
 
        * gnus.texi (NNTP): Explain `port'.
 
-2000-10-30  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-10-30  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Archived Messages): Explain what happens when group
        names mentioned in `gnus-message-archive-group' contain a select
        method.
 
-2000-10-28  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-10-28  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Group Levels): Explain meaning of subscribed,
        unsubscribed, zombie, killed groups.
 
-2000-10-26  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-10-26  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Gnus Development): nnmail-delete-incoming -->
        mail-source-delete-incoming.  Suggested by Karl Kleinpaste
 
        * gnus.texi (IMAP): Add.
 
-2000-10-05  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-10-05  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Windows Configuration): add examples; first example
-       suggested by Stein A. Str\e,Ax\e(Bmme <stromme@mi.uib.no>.  (The actual
+       suggested by Stein A. Strømme <stromme@mi.uib.no>.  (The actual
        Lisp code is also from him.)
 
 2000-10-07  Dave Love  <fx@gnu.org>
 
        * gnus.texi (IMAP): Add examples.
 
-2000-09-19  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-09-19  Kai Großjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (IMAP): Add pointer to description of ~/.authinfo file
        format.
@@ -6088,7 +6094,7 @@ Thu Feb 25 00:28:49 1999  Shenghuo ZHU  <zsh@cs.rochester.edu>
   Boston, MA 02110-1301, USA.
 
 ;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
 ;; fill-column: 79
 ;; add-log-time-zone-rule: t
 ;; End:
index d572984..47bfc56 100644 (file)
@@ -13103,16 +13103,17 @@ Here's the method for a public spool:
 
 If you are behind a firewall and only have access to the @acronym{NNTP}
 server from the firewall machine, you can instruct Gnus to @code{rlogin}
-on the firewall machine and telnet from there to the @acronym{NNTP} server.
+on the firewall machine and connect with
+@uref{http://netcat.sourceforge.net/, netcat} from there to the
+@acronym{NNTP} server.
 Doing this can be rather fiddly, but your virtual server definition
 should probably look something like this:
 
 @lisp
 (nntp "firewall"
-      (nntp-open-connection-function nntp-open-via-rlogin-and-telnet)
+      (nntp-open-connection-function nntp-open-via-rlogin-and-netcat)
       (nntp-via-address "the.firewall.machine")
-      (nntp-address "the.real.nntp.host")
-      (nntp-end-of-line "\n"))
+      (nntp-address "the.real.nntp.host"))
 @end lisp
 
 If you want to use the wonderful @code{ssh} program to provide a
@@ -13125,6 +13126,7 @@ configuration to the example above:
 
 See also @code{nntp-via-rlogin-command-switches}.  Here's an example for
 an indirect connection:
+
 @lisp
 (setq gnus-select-method
       '(nntp "indirect"
@@ -13132,28 +13134,24 @@ an indirect connection:
              (nntp-via-user-name "intermediate_user_name")
              (nntp-via-address "intermediate.host.example")
              (nntp-via-rlogin-command "ssh")
-             (nntp-end-of-line "\n")
-             (nntp-via-rlogin-command-switches ("-C" "-t" "-e" "none"))
-             (nntp-open-connection-function nntp-open-via-rlogin-and-telnet)))
+             (nntp-via-rlogin-command-switches ("-C"))
+             (nntp-open-connection-function nntp-open-via-rlogin-and-netcat)))
 @end lisp
 
+This means that you have to have set up @code{ssh-agent} correctly to
+provide automatic authorization, of course.
+
 If you're behind a firewall, but have direct access to the outside world
 through a wrapper command like "runsocks", you could open a socksified
-telnet connection to the news server as follows:
+netcat connection to the news server as follows:
 
 @lisp
 (nntp "outside"
       (nntp-pre-command "runsocks")
-      (nntp-open-connection-function nntp-open-via-telnet)
-      (nntp-address "the.news.server")
-      (nntp-end-of-line "\n"))
+      (nntp-open-connection-function nntp-open-netcat-stream)
+      (nntp-address "the.news.server"))
 @end lisp
 
-This means that you have to have set up @code{ssh-agent} correctly to
-provide automatic authorization, of course.  And to get a compressed
-connection, you have to have the @samp{Compression} option in the
-@code{ssh} @file{config} file.
-
 
 @node Creating a Virtual Server
 @subsection Creating a Virtual Server
@@ -13620,11 +13618,11 @@ then define a server as follows:
       (nntp-address "snews.bar.com"))
 @end lisp
 
-@findex nntp-open-telnet-stream
-@item nntp-open-telnet-stream
-Opens a connection to an @acronym{NNTP} server by simply @samp{telnet}'ing
-it.  You might wonder why this function exists, since we have the
-default @code{nntp-open-network-stream} which would do the job.  (One
+@findex nntp-open-netcat-stream
+@item nntp-open-netcat-stream
+Opens a connection to an @acronym{NNTP} server using the @code{netcat}
+program.  You might wonder why this function exists, since we have
+the default @code{nntp-open-network-stream} which would do the job.  (One
 of) the reason(s) is that if you are behind a firewall but have direct
 connections to the outside world thanks to a command wrapper like
 @code{runsocks}, you can use it like this:
@@ -13632,12 +13630,27 @@ connections to the outside world thanks to a command wrapper like
 @lisp
 (nntp "socksified"
       (nntp-pre-command "runsocks")
-      (nntp-open-connection-function nntp-open-telnet-stream)
+      (nntp-open-connection-function nntp-open-netcat-stream)
       (nntp-address "the.news.server"))
 @end lisp
 
 With the default method, you would need to wrap your whole Emacs
 session, which is not a good idea.
+
+@findex nntp-open-telnet-stream
+@item nntp-open-telnet-stream
+Like @code{nntp-open-netcat-stream}, but uses @code{telnet} rather than
+@code{netcat}.  @code{telnet} is a bit less robust because of things
+like line-end-conversion, but sometimes netcat is simply
+not available.  The previous example would turn into:
+
+@lisp
+(nntp "socksified"
+      (nntp-pre-command "runsocks")
+      (nntp-open-connection-function nntp-open-telnet-stream)
+      (nntp-address "the.news.server")
+      (nntp-end-of-line "\n"))
+@end lisp
 @end table
 
 
@@ -13653,13 +13666,13 @@ things cleaner.  The behavior of these functions is also affected by
 commonly understood variables (@pxref{Common Variables}).
 
 @table @code
-@item nntp-open-via-rlogin-and-telnet
-@findex nntp-open-via-rlogin-and-telnet
-Does an @samp{rlogin} on a remote system, and then does a @samp{telnet}
+@item nntp-open-via-rlogin-and-netcat
+@findex nntp-open-via-rlogin-and-netcat
+Does an @samp{rlogin} on a remote system, and then uses @code{netcat} to connect
 to the real @acronym{NNTP} server from there.  This is useful for instance if
 you need to connect to a firewall machine first.
 
-@code{nntp-open-via-rlogin-and-telnet}-specific variables:
+@code{nntp-open-via-rlogin-and-netcat}-specific variables:
 
 @table @code
 @item nntp-via-rlogin-command
@@ -13672,35 +13685,28 @@ Command used to log in on the intermediate host.  The default is
 List of strings to be used as the switches to
 @code{nntp-via-rlogin-command}.  The default is @code{nil}.  If you use
 @samp{ssh} for @code{nntp-via-rlogin-command}, you may set this to
-@samp{("-C")} in order to compress all data connections, otherwise set
-this to @samp{("-t" "-e" "none")} or @samp{("-C" "-t" "-e" "none")} if
-the telnet command requires a pseudo-tty allocation on an intermediate
-host.
+@samp{("-C")} in order to compress all data connections.
 @end table
 
-Note that you may want to change the value for @code{nntp-end-of-line}
-to @samp{\n} (@pxref{Common Variables}).
-
-@item nntp-open-via-rlogin-and-netcat
-@findex nntp-open-via-rlogin-and-netcat
-Does essentially the same, but uses
-@uref{http://netcat.sourceforge.net/, netcat} instead of @samp{telnet}
+@item nntp-open-via-rlogin-and-telnet
+@findex nntp-open-via-rlogin-and-telnet
+Does essentially the same, but uses @code{telnet} instead of @samp{netcat}
 to connect to the real @acronym{NNTP} server from the intermediate host.
+@code{telnet} is a bit less robust because of things like
+line-end-conversion, but sometimes @code{netcat} is simply not available.  
 
-@code{nntp-open-via-rlogin-and-netcat}-specific variables:
+@code{nntp-open-via-rlogin-and-telnet}-specific variables:
 
 @table @code
-@item nntp-via-netcat-command
-@vindex nntp-via-netcat-command
+@item nntp-telnet-command
+@vindex nntp-telnet-command
 Command used to connect to the real @acronym{NNTP} server from the
-intermediate host.  The default is @samp{nc}.  You can also use other
-programs like @uref{http://www.imasy.or.jp/~gotoh/ssh/connect.html,
-connect} instead.
+intermediate host.  The default is @samp{telnet}.
 
-@item nntp-via-netcat-switches
-@vindex nntp-via-netcat-switches
+@item nntp-telnet-switches
+@vindex nntp-telnet-switches
 List of strings to be used as the switches to the
-@code{nntp-via-telnet-command} command.  The default is @code{nil}.
+@code{nntp-telnet-command} command.  The default is @code{("-8")}.
 
 @item nntp-via-rlogin-command
 @vindex nntp-via-rlogin-command
@@ -13710,9 +13716,15 @@ Command used to log in on the intermediate host.  The default is
 @item nntp-via-rlogin-command-switches
 @vindex nntp-via-rlogin-command-switches
 List of strings to be used as the switches to
-@code{nntp-via-rlogin-command}.  The default is @code{nil}.
+@code{nntp-via-rlogin-command}.  If you use @samp{ssh},  you may need to set
+this to @samp{("-t" "-e" "none")} or @samp{("-C" "-t" "-e" "none")} if
+the telnet command requires a pseudo-tty allocation on an intermediate
+host.  The default is @code{nil}.
 @end table
 
+Note that you may want to change the value for @code{nntp-end-of-line}
+to @samp{\n} (@pxref{Common Variables}).
+
 @item nntp-open-via-telnet-and-telnet
 @findex nntp-open-via-telnet-and-telnet
 Does essentially the same, but uses @samp{telnet} instead of
@@ -13806,17 +13818,17 @@ String to use as end-of-line marker when talking to the @acronym{NNTP}
 server.  This is @samp{\r\n} by default, but should be @samp{\n} when
 using a non native telnet connection function.
 
-@item nntp-telnet-command
-@vindex nntp-telnet-command
+@item nntp-netcat-command
+@vindex nntp-netcat-command
 Command to use when connecting to the @acronym{NNTP} server through
-@samp{telnet}.  This is @emph{not} for an intermediate host.  This is
+@samp{netcat}.  This is @emph{not} for an intermediate host.  This is
 just for the real @acronym{NNTP} server.  The default is
-@samp{telnet}.
+@samp{nc}.
 
-@item nntp-telnet-switches
-@vindex nntp-telnet-switches
-A list of switches to pass to @code{nntp-telnet-command}.  The default
-is @samp{("-8")}.
+@item nntp-netcat-switches
+@vindex nntp-netcat-switches
+A list of switches to pass to @code{nntp-netcat-command}.  The default
+is @samp{()}.
 
 @end table