From 6d3039252bb175eba53a2028cbf3c0e90112388d Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Thu, 24 Apr 2008 04:19:22 +0000 Subject: [PATCH] Merge from emacs--devo--0, emacs--rel--22 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 * lisp/mailcap.el (mailcap-file-default-commands): New function. 2008-04-08 Katsumi Yamaoka * lisp/compface.el (uncompface): Make buffer unibyte. 2008-04-05 Glenn Morris * lisp/gnus-ems.el (mm-disable-multibyte): Autoload it. 2008-04-05 Stefan Monnier * 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 * lisp/message.el (mml2015-use): Declare for compiler. (message-info): Require mml2015 when appropriate. 2008-03-30 Stefan Monnier * 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 * lisp/message.el (message-make-in-reply-to): Use mm-with-multibyte-buffer. 2008-03-28 Magnus Henoch * lisp/net/dns.el (dns-write): Use set-buffer-multibyte. 2008-03-14 Stefan Monnier * 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 --- contrib/smtpmail.el | 2 +- etc/images/README | 1 + lisp/ChangeLog | 407 +++++++++++++++++++++++++++-------------- lisp/ChangeLog.2 | 30 +-- lisp/binhex.el | 6 +- lisp/canlock.el | 2 +- lisp/compface.el | 3 +- lisp/deuglify.el | 2 +- lisp/dig.el | 2 +- lisp/dns.el | 295 ++++++++++++++--------------- lisp/earcon.el | 2 +- lisp/flow-fill.el | 2 +- lisp/format-spec.el | 2 +- lisp/gnus-agent.el | 2 +- lisp/gnus-art.el | 20 +- lisp/gnus-async.el | 2 +- lisp/gnus-audio.el | 2 +- lisp/gnus-bcklg.el | 2 +- lisp/gnus-bookmark.el | 10 +- lisp/gnus-cache.el | 2 +- lisp/gnus-cite.el | 2 +- lisp/gnus-cus.el | 2 +- lisp/gnus-demon.el | 2 +- lisp/gnus-diary.el | 2 +- lisp/gnus-dired.el | 2 +- lisp/gnus-draft.el | 2 +- lisp/gnus-dup.el | 2 +- lisp/gnus-eform.el | 2 +- lisp/gnus-ems.el | 7 +- lisp/gnus-fun.el | 5 +- lisp/gnus-group.el | 6 +- lisp/gnus-int.el | 2 +- lisp/gnus-kill.el | 2 +- lisp/gnus-logic.el | 2 +- lisp/gnus-mh.el | 2 +- lisp/gnus-ml.el | 2 +- lisp/gnus-mlspl.el | 2 +- lisp/gnus-move.el | 2 +- lisp/gnus-msg.el | 46 ++--- lisp/gnus-nocem.el | 2 +- lisp/gnus-picon.el | 2 +- lisp/gnus-range.el | 2 +- lisp/gnus-registry.el | 2 +- lisp/gnus-score.el | 2 +- lisp/gnus-setup.el | 2 +- lisp/gnus-sieve.el | 2 +- lisp/gnus-soup.el | 7 +- lisp/gnus-spec.el | 2 +- lisp/gnus-srvr.el | 2 +- lisp/gnus-sum.el | 204 +++++++++------------ lisp/gnus-topic.el | 2 +- lisp/gnus-undo.el | 2 +- lisp/gnus-util.el | 2 +- lisp/gnus-uu.el | 2 +- lisp/gnus-vm.el | 2 +- lisp/gnus-win.el | 2 +- lisp/gnus.el | 2 +- lisp/hashcash.el | 2 +- lisp/hmac-def.el | 2 +- lisp/hmac-md5.el | 2 +- lisp/html2text.el | 2 +- lisp/ietf-drums.el | 2 +- lisp/imap.el | 2 +- lisp/mail-parse.el | 2 +- lisp/mail-prsvr.el | 2 +- lisp/mail-source.el | 2 +- lisp/mailcap.el | 50 ++++- lisp/md4.el | 2 +- lisp/message.el | 39 ++-- lisp/messcompat.el | 2 +- lisp/mm-bodies.el | 7 +- lisp/mm-decode.el | 43 ++--- lisp/mm-encode.el | 2 +- lisp/mm-extern.el | 2 +- lisp/mm-partial.el | 2 +- lisp/mm-url.el | 2 +- lisp/mm-util.el | 11 +- lisp/mm-uu.el | 6 +- lisp/mm-view.el | 71 ++++--- lisp/mml-sec.el | 2 +- lisp/mml-smime.el | 2 +- lisp/mml.el | 2 +- lisp/mml1991.el | 2 +- lisp/mml2015.el | 2 +- lisp/netrc.el | 2 +- lisp/nnagent.el | 2 +- lisp/nnbabyl.el | 2 +- lisp/nndb.el | 2 +- lisp/nndiary.el | 2 +- lisp/nndir.el | 2 +- lisp/nndoc.el | 4 +- lisp/nndraft.el | 2 +- lisp/nneething.el | 2 +- lisp/nnfolder.el | 2 +- lisp/nngateway.el | 2 +- lisp/nnheader.el | 12 +- lisp/nnimap.el | 7 +- lisp/nnkiboze.el | 2 +- lisp/nnlistserv.el | 2 +- lisp/nnmail.el | 2 +- lisp/nnmaildir.el | 2 +- lisp/nnmbox.el | 2 +- lisp/nnmh.el | 16 +- lisp/nnml.el | 2 +- lisp/nnnil.el | 2 +- lisp/nnoo.el | 2 +- lisp/nnrss.el | 4 +- lisp/nnslashdot.el | 2 +- lisp/nnsoup.el | 2 +- lisp/nnspool.el | 2 +- lisp/nntp.el | 279 +++++++++++++++------------- lisp/nnultimate.el | 2 +- lisp/nnvirtual.el | 2 +- lisp/nnwarchive.el | 2 +- lisp/nnweb.el | 20 +- lisp/nnwfm.el | 2 +- lisp/ntlm.el | 2 +- lisp/parse-time.el | 8 +- lisp/password-cache.el | 2 +- lisp/pgg-def.el | 2 +- lisp/pgg-gpg.el | 2 +- lisp/pgg-parse.el | 2 +- lisp/pgg-pgp5.el | 2 +- lisp/pgg.el | 2 +- lisp/pop3.el | 2 +- lisp/qp.el | 2 +- lisp/rfc1843.el | 2 +- lisp/rfc2045.el | 2 +- lisp/rfc2047.el | 28 +-- lisp/rfc2104.el | 2 +- lisp/rfc2231.el | 2 +- lisp/sasl-cram.el | 2 +- lisp/sasl-digest.el | 2 +- lisp/sasl-ntlm.el | 2 +- lisp/sasl.el | 2 +- lisp/score-mode.el | 2 +- lisp/sha1.el | 5 +- lisp/sieve-manage.el | 2 +- lisp/sieve-mode.el | 2 +- lisp/sieve.el | 2 +- lisp/smiley.el | 2 +- lisp/smime.el | 2 +- lisp/spam-report.el | 2 +- lisp/spam-stat.el | 2 +- lisp/spam-wash.el | 2 +- lisp/spam.el | 2 +- lisp/starttls.el | 2 +- lisp/time-date.el | 10 +- lisp/tls.el | 2 +- lisp/utf7.el | 2 +- lisp/uudecode.el | 12 +- lisp/webmail.el | 2 +- lisp/yenc.el | 2 +- texi/ChangeLog | 174 +++++++++--------- texi/gnus.texi | 122 ++++++------ 155 files changed, 1193 insertions(+), 1022 deletions(-) diff --git a/contrib/smtpmail.el b/contrib/smtpmail.el index 6bd9f8f90..366290255 100644 --- a/contrib/smtpmail.el +++ b/contrib/smtpmail.el @@ -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 diff --git a/etc/images/README b/etc/images/README index b3271ae2e..c7aa70467 100644 --- a/etc/images/README +++ b/etc/images/README @@ -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 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 87065fe9a..edadea15d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2008-04-22 Juri Linkov + + * mailcap.el (mailcap-file-default-commands): New function. + 2008-04-13 Reiner Steib * message.el (message-signature-separator, message-cite-function): @@ -61,6 +65,37 @@ * gnus-registry.el: Initialize the registry when gnus-registry-install is t. +2008-04-08 Katsumi Yamaoka + + * compface.el (uncompface): Make buffer unibyte. + +2008-04-05 Glenn Morris + + * gnus-ems.el (mm-disable-multibyte): Autoload it. + +2008-04-05 Stefan Monnier + + * 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 * imap.el (imap-enable-exchange-bug-workaround): New variable. @@ -81,23 +116,47 @@ to enable bug workaround or not. (nnimap-find-minmax-uid): Only enable workaround conditionally. +2008-03-31 Glenn Morris + + * message.el (mml2015-use): Declare for compiler. + (message-info): Require mml2015 when appropriate. + 2008-03-31 Katsumi Yamaoka * Makefile.in (EMACS_COMP): Quote directory name that might contain whitespace. +2008-03-30 Stefan Monnier + + * 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 * gnus-sum.el (gnus-summary-make-menu-bar): Add missing dots. +2008-03-29 Stefan Monnier + + * message.el (message-make-in-reply-to): Use mm-with-multibyte-buffer. + +2008-03-28 Magnus Henoch + + * net/dns.el (dns-write): Use set-buffer-multibyte. + 2008-03-28 Michael Harnois (tiny change) * nnimap.el (nnimap-find-minmax-uid): Fix Exchange 2007 IMAP problem. 2008-03-24 Reiner Steib - * 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. @@ -143,6 +202,11 @@ * message.el (message-simplify-recipients): Fix previous commit. +2008-03-20 Stefan Monnier + + * mm-util.el (mm-set-buffer-multibyte): New function. + * mm-decode.el (mm-copy-to-buffer): Use it. + 2008-03-19 Glenn Morris * tls.el (open-tls-stream): Restore use of `tls-end-of-info'. @@ -150,8 +214,8 @@ 2008-03-19 Reiner Steib - * 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. @@ -198,6 +262,10 @@ (gnus-button-alist): Extend gnus-button-handle-info-keystrokes entry. (gnus-button-handle-info-keystrokes): Handle index entries. +2008-03-15 Glenn Morris + + * calendar/parse-time.el (parse-time-string): Simplify. + 2008-03-14 Katsumi Yamaoka * mail-source.el (mail-source-delete-old-incoming) Fix regexp to find @@ -208,6 +276,14 @@ * auth-source.el (auth-sources): Renamed from auth-source-choices. (auth-source-pick): Use it. +2008-03-12 Stefan Monnier + + * 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 * auth-source.el (auth-source-protocols) @@ -226,6 +302,53 @@ (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 + + * 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 * mml2015.el (mml2015-epg-passphrase-callback): Type cast KEY-ID to a @@ -235,10 +358,15 @@ * lpath.el: Consider the case without Emacs/W3. +2008-03-08 Glenn Morris + + * calendar/time-date.el (date-to-time, time-subtract, time-add) + (safe-date-to-time): Doc fixes. + 2008-03-08 Reiner Steib - * 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 @@ -252,6 +380,12 @@ * mm-view.el (mm-w3m-standalone-supports-m17n-p): Fix typo. +2008-03-07 Karl Fogel + + * 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 * auth-source.el: New package. @@ -264,7 +398,7 @@ * 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 @@ -275,11 +409,24 @@ * gnus-sum.el (gnus-summary-make-menu-bar): Add menu entries for all the registry mark functions. +2008-03-05 Glenn Morris + + * 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 * gnus-sum.el (gnus-print-buffer): Honor ps-print-color-p. Suggested by . +2008-03-04 Glenn Morris + + * 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 * gnus-registry.el (gnus-registry-user-format-function-M): Add @@ -297,6 +444,20 @@ * 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 + + * 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 * mml2015.el (mml2015-extract-cleartext-signature): Explain that it @@ -446,9 +607,9 @@ 2008-02-11 Reiner Steib * 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 @@ -742,7 +903,7 @@ (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,Ae(Brd +2007-12-14 Johan Bockgård * gnus-sum.el (gnus-summary-mark-unread-as-read) (gnus-summary-mark-read-and-unread-as-read) @@ -1156,8 +1317,8 @@ * 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 @@ -1176,8 +1337,8 @@ 2007-11-24 Reiner Steib - * 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 @@ -1458,7 +1619,7 @@ 2007-10-26 Reiner Steib * message.el (message-remove-blank-cited-lines): New function. - Suggested by Karl Pl,Ad(Bsterer. + Suggested by Karl Plästerer. 2007-10-25 Katsumi Yamaoka @@ -1940,7 +2101,7 @@ * mm-uu.el (mm-uu-type-alist): Refer to mm-uu-configure-list in doc string. -2007-07-20 Micha,Ak(Bl Cadilhac +2007-07-20 Michaël Cadilhac * nnrss.el (nnrss-ignore-article-fields): New variable. List of fields that should be ignored when comparing distant RSS articles with local @@ -2289,8 +2450,8 @@ 2007-05-24 Katsumi Yamaoka - * 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 @@ -2308,7 +2469,7 @@ * 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,Ak(Bl Cadilhac +2007-05-12 Michaël Cadilhac * gnus-sum.el (gnus-articles-to-read) (gnus-summary-insert-old-articles): Don't truncate group name for @@ -2319,7 +2480,7 @@ * gnus-sum.el (gnus-simplify-subject-fully): Use `truncate-string-to-width' instead. -2007-05-11 Micha,Ak(Bl Cadilhac +2007-05-11 Michaël Cadilhac * gnus-sum.el (gnus-summary-next-group-on-exit): New variable. Tell if, on summary exit, the next group has to be selected. @@ -2669,7 +2830,7 @@ * smiley.el (smiley-regexp-alist): Add "dead" smiley. -2007-02-14 Micha,Ak(Bl Cadilhac +2007-02-14 Michaël Cadilhac * nntp.el (nntp-send-command): Don't wait for echoes when nntp-open-ssl-stream is used. @@ -2907,7 +3068,7 @@ * gnus-cite.el (gnus-message-citation-mode): Don't define in XEmacs. -2006-12-29 Jouni K. Sepp,Ad(Bnen +2006-12-29 Jouni K. Seppänen * nnimap.el (nnimap-expunge-search-string): Mention nnimap-search-uids-not-since-is-evil in docstring. @@ -3066,7 +3227,7 @@ * 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,Ad(Bnen +2006-12-04 Jouni K. Seppänen * mm-url.el (mm-url-predefined-programs): Call curl with correct options. @@ -3682,7 +3843,7 @@ * pgg-def.el (pgg-truncate-key-identifier): Truncate the key ID to 8 letters from the end. Thanks to "David Smith" and - andreas@altroot.de (Andreas V,Av(Bgele). + andreas@altroot.de (Andreas Vögele). FIXME: Use `tiny change'? @@ -4035,7 +4196,7 @@ * nnrss.el (nnrss-check-group): Bind hash-index. -2006-05-23 Micha,Ak(Bl Cadilhac +2006-05-23 Michaël Cadilhac * nnrss.el (nnrss-check-group): Use the md5sum of the whole RSS item as its hash index. Store this hash in `nnrss-group-data'. @@ -4448,7 +4609,7 @@ * gnus-topic.el (gnus-topic-display-missing-topic): Skip past groups in the parent topic. -2006-04-16 Jo,Ac(Bo Cachopo (tiny change) +2006-04-16 João Cachopo (tiny change) * spam.el (spam-necessary-extra-headers): Add X-CRM114-Status. (spam-extra-header-to-number): Return the CRM114 number as a @@ -4637,7 +4798,7 @@ * gnus-art.el (gnus-button-valid-localpart-regexp): Exclude `@'. (gnus-article-browse-delete-temp): Add :version. -2006-04-11 Arne J,Ax(Brgensen +2006-04-11 Arne Jørgensen * gnus-sieve.el (gnus-sieve-generate): Delete from the start of the sieve region. @@ -5271,7 +5432,7 @@ Lisp error; give up parsing of parameters if it failed in extracting type. -2006-02-14 Arne J,Ax(Brgensen +2006-02-14 Arne Jørgensen * smime.el (smime-cert-by-ldap-1): Fix bug where `smime-ldap-search' returns results without userCertificates. @@ -6260,6 +6421,10 @@ * mml.el (mml-preview): Use it; doc fix. +2005-10-30 Chong Yidong + + * imap.el (imap-open): Handle case where buffer is a buffer object. + 2005-10-29 Romain Francoise * message.el (message-fix-before-sending): Fix comment. @@ -6283,7 +6448,7 @@ whitespace removed in revision 7.8. Use concatenated string to protect trailing whitespace. -2005-10-27 Jouni K. Sepp,Ad(Bnen +2005-10-27 Jouni K. Seppänen * nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable. (nnimap-request-expire-articles): Use it to avoid sending 'UID @@ -6296,7 +6461,7 @@ * 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. @@ -6314,7 +6479,6 @@ * 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 * gnus-sum.el (gnus-ignored-from-addresses): Handle case where @@ -6574,7 +6738,7 @@ * message.el (message-idna-to-ascii-rhs-1): Reformat. -2005-09-27 Arne J,Ax(Brgensen +2005-09-27 Arne Jørgensen * message.el (message-remove-duplicates): New function. Implementation borrowed from `gnus-remove-duplicates'. @@ -6796,8 +6960,7 @@ 2005-09-05 Reiner Steib - * 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. @@ -7226,7 +7389,7 @@ * 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,Ax(Brgensen +2005-06-16 Arne Jørgensen * smime.el (smime-cert-by-ldap-1): Detect PEM format without header by looking for magic "MII" at the beginnig. @@ -7451,7 +7614,7 @@ * smime.el (smime-cert-by-ldap-1): Don't use replace-regexp-in-string. -2005-05-31 Arne J,Ax(Brgensen +2005-05-31 Arne Jørgensen * smime-ldap.el (smime-ldap-search): Add compatibility for XEmacs. @@ -7894,7 +8057,7 @@ * nnimap.el (nnimap-retrieve-headers-from-server): Fix last change. -2005-03-10 Arne J,Ax(Brgensen (tiny change) +2005-03-10 Arne Jørgensen (tiny change) * nnimap.el (nnimap-retrieve-headers-from-server): Fix off-by-one flaw. @@ -8009,7 +8172,7 @@ * gnus-sum.el (gnus-summary-exit): Move point after displaying the buffer, so it moves the window's cursor. -2005-02-26 Arne J,Ax(Brgensen +2005-02-26 Arne Jørgensen * mm-decode.el (mm-dissect-buffer): Pass the from field on to `mm-dissect-multipart' and receive the from field as an (optional) @@ -8045,12 +8208,12 @@ 2005-02-22 Simon Josefsson * encrypt.el (encrypt-password-cache-expiry): Remove (use - `password-cache-expiry' instead). Reported by Arne J,Ax(Brgensen + `password-cache-expiry' instead). Reported by Arne Jørgensen . (encrypt): Add password-cache and password-cache-expiry as group members. -2005-02-22 Arne J,Ax(Brgensen +2005-02-22 Arne Jørgensen * smime.el (smime-ldap-host-list): Doc fix. (smime-ask-passphrase): Use `password-read-and-add' to read (and @@ -8070,7 +8233,7 @@ * mml.el (mml-parse-1): Use them. -2005-02-21 Arne J,Ax(Brgensen +2005-02-21 Arne Jørgensen * nnrss.el (nnrss-verbose): Removed. (nnrss-request-group): Use `nnheader-message' instead. @@ -8134,7 +8297,7 @@ mml-smime-get-dns-ldap. (mml-smime-encrypt-query): Use new function. Default to ldap. -2005-02-14 Arne J,Ax(Brgensen +2005-02-14 Arne Jørgensen * smime.el: Require smime-ldap. (smime-ldap-host-list): New variable. @@ -8402,8 +8565,8 @@ 2005-01-03 Reiner Steib - * 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 @@ -8781,7 +8944,7 @@ * gnus-art.el (gnus-header-button-alist): Handle URLs in OpenPGP: headers separately. - (gnus-button-openpgp): New function, inspired by Jochen K,A|(Bpper + (gnus-button-openpgp): New function, inspired by Jochen Küpper . 2004-11-14 Reiner Steib @@ -9870,8 +10033,7 @@ 2004-08-26 Katsumi Yamaoka - * 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 @@ -9885,8 +10047,8 @@ (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. @@ -9900,13 +10062,13 @@ 2004-08-23 Katsumi Yamaoka - * 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 - * 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 @@ -10509,7 +10671,7 @@ (spam-mark-junk-as-spam-routine): Use it. Allow to disable assigning the spam-mark to new messages. -2004-05-26 Adam Sj,Ax(Bgren (tiny change) +2004-05-26 Adam Sjøgren (tiny change) (spam-ham-copy-or-move-routine): Don't declare `todo' twice. @@ -10650,7 +10812,7 @@ (spam-crm114-unregister-spam-routine) (spam-crm114-register-ham-routine) (spam-crm114-unregister-ham-routine): Add CRM114 support. From - asjo@koldfront.dk (Adam Sj,Ax(Bgren). + asjo@koldfront.dk (Adam Sjøgren). * gnus.el: Add spam-use-crm114. @@ -11042,59 +11204,37 @@ 2004-04-25 Jesper Harder - * 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 FIXME: Make separate entries for each person. From Dan Christensen , asjo@koldfront.dk (Adam - Sj,Ax(Bgren), Wes Hardaker , and Michael Shields + Sjøgren), Wes Hardaker , and Michael Shields : * spam.el (spam-necessary-extra-headers): Get the extra headers we @@ -11107,14 +11247,14 @@ 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 * spam.el (spam-summary-prepare-exit): Add logic and message fix. - Reported by bojohan+news@dd.chalmers.se (Johan Bockg,Ae(Brd). + Reported by bojohan+news@dd.chalmers.se (Johan Bockgård). 2004-04-17 Jesper Harder @@ -11123,8 +11263,8 @@ (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 @@ -11278,15 +11418,15 @@ (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. @@ -12257,7 +12397,7 @@ * gnus-score.el (gnus-score-edit-all-score): Fix prototype. Invoke gnus-score-mode. Reported by - bojohan+news@dd.chalmers.se (Johan Bockg,Ae(Brd). + bojohan+news@dd.chalmers.se (Johan Bockgård). * gnus-range.el (gnus-compress-sequence): Doc fix. Suggested by Jim Blandy (tiny change). @@ -12292,8 +12432,7 @@ 2004-01-11 Jesper Harder - * 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. @@ -12302,24 +12441,11 @@ 2004-01-10 Jesper Harder - * 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) @@ -12329,24 +12455,25 @@ (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 @@ -12613,7 +12740,7 @@ * nnheaderxm.el: Remove definition of run-at-time. -2004-01-05 Karl Pfl,Ad(Bsterer (tiny change) +2004-01-05 Karl Pflästerer (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: diff --git a/lisp/ChangeLog.2 b/lisp/ChangeLog.2 index a5821b31a..8dc1fc1de 100644 --- a/lisp/ChangeLog.2 +++ b/lisp/ChangeLog.2 @@ -4464,22 +4464,22 @@ 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. @@ -4488,17 +4488,17 @@ 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 @@ -9162,8 +9162,8 @@ 2002-04-19 Jesper Harder - * 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 diff --git a/lisp/binhex.el b/lisp/binhex.el index 7b83c978b..d6045d030 100644 --- a/lisp/binhex.el +++ b/lisp/binhex.el @@ -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 diff --git a/lisp/canlock.el b/lisp/canlock.el index e42f8c677..af30c07ff 100644 --- a/lisp/canlock.el +++ b/lisp/canlock.el @@ -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 diff --git a/lisp/compface.el b/lisp/compface.el index 2f81ab023..a548569aa 100644 --- a/lisp/compface.el +++ b/lisp/compface.el @@ -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 diff --git a/lisp/deuglify.el b/lisp/deuglify.el index 85f508cbc..23d3fdd27 100644 --- a/lisp/deuglify.el +++ b/lisp/deuglify.el @@ -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 diff --git a/lisp/dig.el b/lisp/dig.el index 16755439b..c271a8147 100644 --- a/lisp/dig.el +++ b/lisp/dig.el @@ -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 diff --git a/lisp/dns.el b/lisp/dns.el index f8f46173f..cb859f9f5 100644 --- a/lisp/dns.el +++ b/lisp/dns.el @@ -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 diff --git a/lisp/earcon.el b/lisp/earcon.el index 39b17893a..6fc8da58a 100644 --- a/lisp/earcon.el +++ b/lisp/earcon.el @@ -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 diff --git a/lisp/flow-fill.el b/lisp/flow-fill.el index ea1017a7c..359831817 100644 --- a/lisp/flow-fill.el +++ b/lisp/flow-fill.el @@ -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 diff --git a/lisp/format-spec.el b/lisp/format-spec.el index fe3f821e5..d5a600e19 100644 --- a/lisp/format-spec.el +++ b/lisp/format-spec.el @@ -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 diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index d6b4c1106..b1b027e80 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -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 diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index b77751a54..b9f613aca 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -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 diff --git a/lisp/gnus-async.el b/lisp/gnus-async.el index 329a7ac7b..e3b5b4ad8 100644 --- a/lisp/gnus-async.el +++ b/lisp/gnus-async.el @@ -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 diff --git a/lisp/gnus-audio.el b/lisp/gnus-audio.el index 95c7d8d39..cd0385e5a 100644 --- a/lisp/gnus-audio.el +++ b/lisp/gnus-audio.el @@ -148,5 +148,5 @@ (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 diff --git a/lisp/gnus-bcklg.el b/lisp/gnus-bcklg.el index 2b39cbef2..a4465482e 100644 --- a/lisp/gnus-bcklg.el +++ b/lisp/gnus-bcklg.el @@ -161,5 +161,5 @@ (provide 'gnus-bcklg) -;;; arch-tag: 66259e56-505a-4bba-8a0d-3552c5b94e39 +;; arch-tag: 66259e56-505a-4bba-8a0d-3552c5b94e39 ;;; gnus-bcklg.el ends here diff --git a/lisp/gnus-bookmark.el b/lisp/gnus-bookmark.el index 5cec35d60..076ac5240 100644 --- a/lisp/gnus-bookmark.el +++ b/lisp/gnus-bookmark.el @@ -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)) diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 802d68516..8aed04767 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -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 diff --git a/lisp/gnus-cite.el b/lisp/gnus-cite.el index 64c0864db..b8ac424b3 100644 --- a/lisp/gnus-cite.el +++ b/lisp/gnus-cite.el @@ -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 diff --git a/lisp/gnus-cus.el b/lisp/gnus-cus.el index 06515eb37..238e36a04 100644 --- a/lisp/gnus-cus.el +++ b/lisp/gnus-cus.el @@ -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 diff --git a/lisp/gnus-demon.el b/lisp/gnus-demon.el index c4b764ff5..53100ea84 100644 --- a/lisp/gnus-demon.el +++ b/lisp/gnus-demon.el @@ -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 diff --git a/lisp/gnus-diary.el b/lisp/gnus-diary.el index cd2239a5b..183214f92 100644 --- a/lisp/gnus-diary.el +++ b/lisp/gnus-diary.el @@ -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 diff --git a/lisp/gnus-dired.el b/lisp/gnus-dired.el index 4f29fe8d2..3e496c330 100644 --- a/lisp/gnus-dired.el +++ b/lisp/gnus-dired.el @@ -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 diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index 9148ca903..d1d3c9fc3 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -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 diff --git a/lisp/gnus-dup.el b/lisp/gnus-dup.el index 73b183f97..160952d33 100644 --- a/lisp/gnus-dup.el +++ b/lisp/gnus-dup.el @@ -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 diff --git a/lisp/gnus-eform.el b/lisp/gnus-eform.el index ae89d4e74..a35181705 100644 --- a/lisp/gnus-eform.el +++ b/lisp/gnus-eform.el @@ -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 diff --git a/lisp/gnus-ems.el b/lisp/gnus-ems.el index 337fc38b2..594b592e7 100644 --- a/lisp/gnus-ems.el +++ b/lisp/gnus-ems.el @@ -162,6 +162,7 @@ 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." @@ -179,9 +180,9 @@ (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))))))) @@ -307,5 +308,5 @@ (provide 'gnus-ems) -;;; arch-tag: e7360b45-14b5-4171-aa39-69a44aed3cdb +;; arch-tag: e7360b45-14b5-4171-aa39-69a44aed3cdb ;;; gnus-ems.el ends here diff --git a/lisp/gnus-fun.el b/lisp/gnus-fun.el index 72627f27e..b4d71b1a6 100644 --- a/lisp/gnus-fun.el +++ b/lisp/gnus-fun.el @@ -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 diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 219292b8d..c40948c44 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -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 diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 12465663c..6e09e0c45 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -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 diff --git a/lisp/gnus-kill.el b/lisp/gnus-kill.el index 5c52806e2..698803a3e 100644 --- a/lisp/gnus-kill.el +++ b/lisp/gnus-kill.el @@ -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 diff --git a/lisp/gnus-logic.el b/lisp/gnus-logic.el index 78ced8e4f..3f529cf53 100644 --- a/lisp/gnus-logic.el +++ b/lisp/gnus-logic.el @@ -228,5 +228,5 @@ (provide 'gnus-logic) -;;; arch-tag: 9651a100-4a59-4b69-a55b-e511e67c0f8d +;; arch-tag: 9651a100-4a59-4b69-a55b-e511e67c0f8d ;;; gnus-logic.el ends here diff --git a/lisp/gnus-mh.el b/lisp/gnus-mh.el index 1ecb12545..f8b006de5 100644 --- a/lisp/gnus-mh.el +++ b/lisp/gnus-mh.el @@ -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 diff --git a/lisp/gnus-ml.el b/lisp/gnus-ml.el index 7158d6672..300dd9d69 100644 --- a/lisp/gnus-ml.el +++ b/lisp/gnus-ml.el @@ -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 diff --git a/lisp/gnus-mlspl.el b/lisp/gnus-mlspl.el index a91985267..3acc0aed7 100644 --- a/lisp/gnus-mlspl.el +++ b/lisp/gnus-mlspl.el @@ -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 diff --git a/lisp/gnus-move.el b/lisp/gnus-move.el index cc23c06d1..755750662 100644 --- a/lisp/gnus-move.el +++ b/lisp/gnus-move.el @@ -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 diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 0a2ee2d09..9a8b365a0 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -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 diff --git a/lisp/gnus-nocem.el b/lisp/gnus-nocem.el index 5ce8e0f52..1b092d522 100644 --- a/lisp/gnus-nocem.el +++ b/lisp/gnus-nocem.el @@ -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 diff --git a/lisp/gnus-picon.el b/lisp/gnus-picon.el index feb07d10e..e5535a340 100644 --- a/lisp/gnus-picon.el +++ b/lisp/gnus-picon.el @@ -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 diff --git a/lisp/gnus-range.el b/lisp/gnus-range.el index 9d5790b42..38d4b84e9 100644 --- a/lisp/gnus-range.el +++ b/lisp/gnus-range.el @@ -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 diff --git a/lisp/gnus-registry.el b/lisp/gnus-registry.el index 687a8a24e..fd08d4d1e 100644 --- a/lisp/gnus-registry.el +++ b/lisp/gnus-registry.el @@ -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 diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 7a4fb2575..0284db0af 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -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 diff --git a/lisp/gnus-setup.el b/lisp/gnus-setup.el index cc2d1ebc0..9b682e05a 100644 --- a/lisp/gnus-setup.el +++ b/lisp/gnus-setup.el @@ -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 diff --git a/lisp/gnus-sieve.el b/lisp/gnus-sieve.el index a6023c83f..460500d3b 100644 --- a/lisp/gnus-sieve.el +++ b/lisp/gnus-sieve.el @@ -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 diff --git a/lisp/gnus-soup.el b/lisp/gnus-soup.el index f34e001e2..7133c4522 100644 --- a/lisp/gnus-soup.el +++ b/lisp/gnus-soup.el @@ -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 diff --git a/lisp/gnus-spec.el b/lisp/gnus-spec.el index c35425bcf..d8a2fd796 100644 --- a/lisp/gnus-spec.el +++ b/lisp/gnus-spec.el @@ -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 diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index 2173ee29e..09d102afe 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -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 diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index bdf411e48..6b9f9c65f 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -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) diff --git a/lisp/gnus-topic.el b/lisp/gnus-topic.el index 92f4ca031..ecaa7869a 100644 --- a/lisp/gnus-topic.el +++ b/lisp/gnus-topic.el @@ -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 diff --git a/lisp/gnus-undo.el b/lisp/gnus-undo.el index ac64eee01..e85e7e75c 100644 --- a/lisp/gnus-undo.el +++ b/lisp/gnus-undo.el @@ -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 diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 66db49d84..637703cf1 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -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 diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index cdf5e4dbf..334e73b20 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -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 diff --git a/lisp/gnus-vm.el b/lisp/gnus-vm.el index 8624db411..ff8f75a26 100644 --- a/lisp/gnus-vm.el +++ b/lisp/gnus-vm.el @@ -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 diff --git a/lisp/gnus-win.el b/lisp/gnus-win.el index 03d882c5c..ba77620fc 100644 --- a/lisp/gnus-win.el +++ b/lisp/gnus-win.el @@ -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 diff --git a/lisp/gnus.el b/lisp/gnus.el index a61af6e66..9daaa0076 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -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 diff --git a/lisp/hashcash.el b/lisp/hashcash.el index 5b292961b..a6d148c05 100644 --- a/lisp/hashcash.el +++ b/lisp/hashcash.el @@ -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 diff --git a/lisp/hmac-def.el b/lisp/hmac-def.el index 6b7cb7dde..89e821462 100644 --- a/lisp/hmac-def.el +++ b/lisp/hmac-def.el @@ -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 diff --git a/lisp/hmac-md5.el b/lisp/hmac-md5.el index 50a2d2742..914364780 100644 --- a/lisp/hmac-md5.el +++ b/lisp/hmac-md5.el @@ -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 diff --git a/lisp/html2text.el b/lisp/html2text.el index cb4d7dde5..573abcd86 100644 --- a/lisp/html2text.el +++ b/lisp/html2text.el @@ -510,5 +510,5 @@ See the documentation for that variable." ;; ;; (provide 'html2text) -;;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e +;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e ;;; html2text.el ends here diff --git a/lisp/ietf-drums.el b/lisp/ietf-drums.el index 28193b89e..6ec5a31f4 100644 --- a/lisp/ietf-drums.el +++ b/lisp/ietf-drums.el @@ -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 diff --git a/lisp/imap.el b/lisp/imap.el index 9e3d0a966..2ae3ce555 100644 --- a/lisp/imap.el +++ b/lisp/imap.el @@ -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 diff --git a/lisp/mail-parse.el b/lisp/mail-parse.el index 576e0c280..9125f436b 100644 --- a/lisp/mail-parse.el +++ b/lisp/mail-parse.el @@ -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 diff --git a/lisp/mail-prsvr.el b/lisp/mail-prsvr.el index b6fdd828e..851673692 100644 --- a/lisp/mail-prsvr.el +++ b/lisp/mail-prsvr.el @@ -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 diff --git a/lisp/mail-source.el b/lisp/mail-source.el index 583b19049..a26f88589 100644 --- a/lisp/mail-source.el +++ b/lisp/mail-source.el @@ -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 diff --git a/lisp/mailcap.el b/lisp/mailcap.el index 866e57fef..7abb97ead 100644 --- a/lisp/mailcap.el +++ b/lisp/mailcap.el @@ -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 diff --git a/lisp/md4.el b/lisp/md4.el index 13435097b..194a119b5 100644 --- a/lisp/md4.el +++ b/lisp/md4.el @@ -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 diff --git a/lisp/message.el b/lisp/message.el index a86361434..f35b9a336 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -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 \"" diff --git a/lisp/messcompat.el b/lisp/messcompat.el index 2f6036301..07b9edfa7 100644 --- a/lisp/messcompat.el +++ b/lisp/messcompat.el @@ -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 diff --git a/lisp/mm-bodies.el b/lisp/mm-bodies.el index 90d4acbdc..208c35f72 100644 --- a/lisp/mm-bodies.el +++ b/lisp/mm-bodies.el @@ -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 diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index dde46be85..56258b96b 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -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? " diff --git a/lisp/mm-encode.el b/lisp/mm-encode.el index d22c59c50..2597a5d5d 100644 --- a/lisp/mm-encode.el +++ b/lisp/mm-encode.el @@ -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 diff --git a/lisp/mm-extern.el b/lisp/mm-extern.el index d63ffb890..5f0565f2c 100644 --- a/lisp/mm-extern.el +++ b/lisp/mm-extern.el @@ -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 diff --git a/lisp/mm-partial.el b/lisp/mm-partial.el index 0a8a133a3..764c706c8 100644 --- a/lisp/mm-partial.el +++ b/lisp/mm-partial.el @@ -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 diff --git a/lisp/mm-url.el b/lisp/mm-url.el index f1b4d431c..e7245d08a 100644 --- a/lisp/mm-url.el +++ b/lisp/mm-url.el @@ -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 diff --git a/lisp/mm-util.el b/lisp/mm-util.el index 8e625c936..7a944bbc1 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -105,6 +105,7 @@ (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)) diff --git a/lisp/mm-uu.el b/lisp/mm-uu.el index bf5125e37..9d5c6368b 100644 --- a/lisp/mm-uu.el +++ b/lisp/mm-uu.el @@ -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) diff --git a/lisp/mm-view.el b/lisp/mm-view.el index 9e9414f8f..d91f0dafa 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -86,14 +86,14 @@ (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))))))) @@ -102,12 +102,12 @@ (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) @@ -194,13 +194,12 @@ (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))))))))) @@ -389,7 +388,7 @@ (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 @@ -399,7 +398,7 @@ (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" @@ -415,7 +414,7 @@ (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. @@ -437,15 +436,14 @@ (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)))))))) @@ -458,9 +456,9 @@ (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")) @@ -527,13 +525,12 @@ (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) @@ -605,22 +602,20 @@ ;; 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 @@ -681,5 +676,5 @@ (provide 'mm-view) -;;; arch-tag: b60e749a-d05c-47f2-bccd-bdaa59327cb2 +;; arch-tag: b60e749a-d05c-47f2-bccd-bdaa59327cb2 ;;; mm-view.el ends here diff --git a/lisp/mml-sec.el b/lisp/mml-sec.el index 0906b8e16..896b01469 100644 --- a/lisp/mml-sec.el +++ b/lisp/mml-sec.el @@ -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 diff --git a/lisp/mml-smime.el b/lisp/mml-smime.el index 340370b94..e2f6e6338 100644 --- a/lisp/mml-smime.el +++ b/lisp/mml-smime.el @@ -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 diff --git a/lisp/mml.el b/lisp/mml.el index 79a1de772..b29738da5 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -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 diff --git a/lisp/mml1991.el b/lisp/mml1991.el index 5224f7e18..27d749093 100644 --- a/lisp/mml1991.el +++ b/lisp/mml1991.el @@ -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 diff --git a/lisp/mml2015.el b/lisp/mml2015.el index eb09b71f7..903623af0 100644 --- a/lisp/mml2015.el +++ b/lisp/mml2015.el @@ -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 diff --git a/lisp/netrc.el b/lisp/netrc.el index de82ae747..e2fbd7430 100644 --- a/lisp/netrc.el +++ b/lisp/netrc.el @@ -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 diff --git a/lisp/nnagent.el b/lisp/nnagent.el index b0c14fa35..67cc762cf 100644 --- a/lisp/nnagent.el +++ b/lisp/nnagent.el @@ -263,5 +263,5 @@ (provide 'nnagent) -;;; arch-tag: af710b77-f816-4969-af31-6fd94fb42245 +;; arch-tag: af710b77-f816-4969-af31-6fd94fb42245 ;;; nnagent.el ends here diff --git a/lisp/nnbabyl.el b/lisp/nnbabyl.el index 06943de1e..6a9d08d7a 100644 --- a/lisp/nnbabyl.el +++ b/lisp/nnbabyl.el @@ -665,5 +665,5 @@ (provide 'nnbabyl) -;;; arch-tag: aa7ddedb-8c07-4c0e-beb0-58e795c2b81b +;; arch-tag: aa7ddedb-8c07-4c0e-beb0-58e795c2b81b ;;; nnbabyl.el ends here diff --git a/lisp/nndb.el b/lisp/nndb.el index 655c3b96e..06bc88dc0 100644 --- a/lisp/nndb.el +++ b/lisp/nndb.el @@ -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 diff --git a/lisp/nndiary.el b/lisp/nndiary.el index 4cc0a98f0..0854d986b 100644 --- a/lisp/nndiary.el +++ b/lisp/nndiary.el @@ -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 diff --git a/lisp/nndir.el b/lisp/nndir.el index 85aff9c8b..f6b59d5ca 100644 --- a/lisp/nndir.el +++ b/lisp/nndir.el @@ -98,5 +98,5 @@ (provide 'nndir) -;;; arch-tag: 56f09f68-0e4e-4816-818a-df80b4a394c8 +;; arch-tag: 56f09f68-0e4e-4816-818a-df80b4a394c8 ;;; nndir.el ends here diff --git a/lisp/nndoc.el b/lisp/nndoc.el index f9455edfd..dbaaa4d71 100644 --- a/lisp/nndoc.el +++ b/lisp/nndoc.el @@ -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 diff --git a/lisp/nndraft.el b/lisp/nndraft.el index dc232ee4f..daf37e453 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -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 diff --git a/lisp/nneething.el b/lisp/nneething.el index ac52cfdb4..aa0f32824 100644 --- a/lisp/nneething.el +++ b/lisp/nneething.el @@ -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 diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index f1c525864..4f5ab8a6d 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -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 diff --git a/lisp/nngateway.el b/lisp/nngateway.el index ede538075..9e0b97b7a 100644 --- a/lisp/nngateway.el +++ b/lisp/nngateway.el @@ -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 diff --git a/lisp/nnheader.el b/lisp/nnheader.el index b448d40f1..15e6a6c09 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -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 diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 716fbaa40..45f794626 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -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)) diff --git a/lisp/nnkiboze.el b/lisp/nnkiboze.el index aca386926..4c447d3ad 100644 --- a/lisp/nnkiboze.el +++ b/lisp/nnkiboze.el @@ -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 diff --git a/lisp/nnlistserv.el b/lisp/nnlistserv.el index 41941370e..725437b83 100644 --- a/lisp/nnlistserv.el +++ b/lisp/nnlistserv.el @@ -150,5 +150,5 @@ (provide 'nnlistserv) -;;; arch-tag: 7705176f-d332-4a5e-a520-d0d319445617 +;; arch-tag: 7705176f-d332-4a5e-a520-d0d319445617 ;;; nnlistserv.el ends here diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 0cccfa1b0..3228055ed 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -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 diff --git a/lisp/nnmaildir.el b/lisp/nnmaildir.el index 05c19c27e..9ae10af25 100644 --- a/lisp/nnmaildir.el +++ b/lisp/nnmaildir.el @@ -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 diff --git a/lisp/nnmbox.el b/lisp/nnmbox.el index 78af887de..963184df1 100644 --- a/lisp/nnmbox.el +++ b/lisp/nnmbox.el @@ -715,5 +715,5 @@ (provide 'nnmbox) -;;; arch-tag: 611dd95f-be37-413a-b3ae-8b059ba93659 +;; arch-tag: 611dd95f-be37-413a-b3ae-8b059ba93659 ;;; nnmbox.el ends here diff --git a/lisp/nnmh.el b/lisp/nnmh.el index 88730a29b..af79acaa3 100644 --- a/lisp/nnmh.el +++ b/lisp/nnmh.el @@ -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 diff --git a/lisp/nnml.el b/lisp/nnml.el index 55c33b1aa..1c764b526 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -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 diff --git a/lisp/nnnil.el b/lisp/nnnil.el index 5c5e3c1af..ecb0ced91 100644 --- a/lisp/nnnil.el +++ b/lisp/nnnil.el @@ -81,4 +81,4 @@ (provide 'nnnil) -;;; arch-tag: a982a1a3-bc5e-4fb1-a233-d7657a3e3257 +;; arch-tag: a982a1a3-bc5e-4fb1-a233-d7657a3e3257 diff --git a/lisp/nnoo.el b/lisp/nnoo.el index 56be96ff3..933ce00de 100644 --- a/lisp/nnoo.el +++ b/lisp/nnoo.el @@ -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 diff --git a/lisp/nnrss.el b/lisp/nnrss.el index 70fec300f..cd12b82fb 100644 --- a/lisp/nnrss.el +++ b/lisp/nnrss.el @@ -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 diff --git a/lisp/nnslashdot.el b/lisp/nnslashdot.el index e9a5cad35..92351a459 100644 --- a/lisp/nnslashdot.el +++ b/lisp/nnslashdot.el @@ -503,5 +503,5 @@ (provide 'nnslashdot) -;;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3 +;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3 ;;; nnslashdot.el ends here diff --git a/lisp/nnsoup.el b/lisp/nnsoup.el index 24825e16a..e74ecda70 100644 --- a/lisp/nnsoup.el +++ b/lisp/nnsoup.el @@ -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 diff --git a/lisp/nnspool.el b/lisp/nnspool.el index d8f876d7a..bb5be8fd2 100644 --- a/lisp/nnspool.el +++ b/lisp/nnspool.el @@ -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 diff --git a/lisp/nntp.el b/lisp/nntp.el index 68a7f3c58..f43d1a1aa 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -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 diff --git a/lisp/nnultimate.el b/lisp/nnultimate.el index ffa246c98..a924c8141 100644 --- a/lisp/nnultimate.el +++ b/lisp/nnultimate.el @@ -478,5 +478,5 @@ ;; coding: iso-8859-1 ;; End: -;;; arch-tag: ab6bfc45-8fe1-4647-9c78-41050eb152b8 +;; arch-tag: ab6bfc45-8fe1-4647-9c78-41050eb152b8 ;;; nnultimate.el ends here diff --git a/lisp/nnvirtual.el b/lisp/nnvirtual.el index 8e4faf2cd..09d8b464f 100644 --- a/lisp/nnvirtual.el +++ b/lisp/nnvirtual.el @@ -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 diff --git a/lisp/nnwarchive.el b/lisp/nnwarchive.el index 36dec52a8..3376df903 100644 --- a/lisp/nnwarchive.el +++ b/lisp/nnwarchive.el @@ -725,5 +725,5 @@ (provide 'nnwarchive) -;;; arch-tag: 1ab7a15c-777a-40e0-95c0-0c41b3963578 +;; arch-tag: 1ab7a15c-777a-40e0-95c0-0c41b3963578 ;;; nnwarchive.el ends here diff --git a/lisp/nnweb.el b/lisp/nnweb.el index 56a287ef5..83b2306c7 100644 --- a/lisp/nnweb.el +++ b/lisp/nnweb.el @@ -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 diff --git a/lisp/nnwfm.el b/lisp/nnwfm.el index 51e5833d6..6c439d4cd 100644 --- a/lisp/nnwfm.el +++ b/lisp/nnwfm.el @@ -430,5 +430,5 @@ ;; coding: iso-8859-1 ;; End: -;;; arch-tag: d813966a-4211-4557-ad11-d1ac2bc86536 +;; arch-tag: d813966a-4211-4557-ad11-d1ac2bc86536 ;;; nnwfm.el ends here diff --git a/lisp/ntlm.el b/lisp/ntlm.el index 241833822..347985173 100644 --- a/lisp/ntlm.el +++ b/lisp/ntlm.el @@ -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 diff --git a/lisp/parse-time.el b/lisp/parse-time.el index 036f32f46..4894c8f9a 100644 --- a/lisp/parse-time.el +++ b/lisp/parse-time.el @@ -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 ;; 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 diff --git a/lisp/password-cache.el b/lisp/password-cache.el index e937c45a8..01757bd86 100644 --- a/lisp/password-cache.el +++ b/lisp/password-cache.el @@ -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 diff --git a/lisp/pgg-def.el b/lisp/pgg-def.el index f5eb2f148..7740ce7b2 100644 --- a/lisp/pgg-def.el +++ b/lisp/pgg-def.el @@ -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 diff --git a/lisp/pgg-gpg.el b/lisp/pgg-gpg.el index 85a4e17d5..f481ca70d 100644 --- a/lisp/pgg-gpg.el +++ b/lisp/pgg-gpg.el @@ -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 diff --git a/lisp/pgg-parse.el b/lisp/pgg-parse.el index 813b11141..be14e2217 100644 --- a/lisp/pgg-parse.el +++ b/lisp/pgg-parse.el @@ -520,5 +520,5 @@ (provide 'pgg-parse) -;;; arch-tag: 16c2eb82-1313-4a7c-a70f-420709b5b43e +;; arch-tag: 16c2eb82-1313-4a7c-a70f-420709b5b43e ;;; pgg-parse.el ends here diff --git a/lisp/pgg-pgp5.el b/lisp/pgg-pgp5.el index 599beb153..44a85ad19 100644 --- a/lisp/pgg-pgp5.el +++ b/lisp/pgg-pgp5.el @@ -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 diff --git a/lisp/pgg.el b/lisp/pgg.el index 3de9b5e20..c50a64415 100644 --- a/lisp/pgg.el +++ b/lisp/pgg.el @@ -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 diff --git a/lisp/pop3.el b/lisp/pop3.el index ad442cfce..85126e053 100644 --- a/lisp/pop3.el +++ b/lisp/pop3.el @@ -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 diff --git a/lisp/qp.el b/lisp/qp.el index 4aedaa08b..5d25e0547 100644 --- a/lisp/qp.el +++ b/lisp/qp.el @@ -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 diff --git a/lisp/rfc1843.el b/lisp/rfc1843.el index 6c0c2a513..ca8a1160a 100644 --- a/lisp/rfc1843.el +++ b/lisp/rfc1843.el @@ -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 diff --git a/lisp/rfc2045.el b/lisp/rfc2045.el index 06cfe86fc..1b79fc747 100644 --- a/lisp/rfc2045.el +++ b/lisp/rfc2045.el @@ -41,5 +41,5 @@ (provide 'rfc2045) -;;; arch-tag: 9ca54127-97bc-432c-b6e2-8c59cadba306 +;; arch-tag: 9ca54127-97bc-432c-b6e2-8c59cadba306 ;;; rfc2045.el ends here diff --git a/lisp/rfc2047.el b/lisp/rfc2047.el index 45f251d4e..fc184666a 100644 --- a/lisp/rfc2047.el +++ b/lisp/rfc2047.el @@ -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 diff --git a/lisp/rfc2104.el b/lisp/rfc2104.el index 43bbae9fa..e88faf726 100644 --- a/lisp/rfc2104.el +++ b/lisp/rfc2104.el @@ -120,5 +120,5 @@ (provide 'rfc2104) -;;; arch-tag: cf671d5c-a45f-4a09-815e-704e59e43950 +;; arch-tag: cf671d5c-a45f-4a09-815e-704e59e43950 ;;; rfc2104.el ends here diff --git a/lisp/rfc2231.el b/lisp/rfc2231.el index 93282c0c2..498affd15 100644 --- a/lisp/rfc2231.el +++ b/lisp/rfc2231.el @@ -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 diff --git a/lisp/sasl-cram.el b/lisp/sasl-cram.el index 911c8fe18..e637f0982 100644 --- a/lisp/sasl-cram.el +++ b/lisp/sasl-cram.el @@ -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 diff --git a/lisp/sasl-digest.el b/lisp/sasl-digest.el index 85417dff3..c3c9e7f78 100644 --- a/lisp/sasl-digest.el +++ b/lisp/sasl-digest.el @@ -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 diff --git a/lisp/sasl-ntlm.el b/lisp/sasl-ntlm.el index 699fd1252..fcc1bbd73 100644 --- a/lisp/sasl-ntlm.el +++ b/lisp/sasl-ntlm.el @@ -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 diff --git a/lisp/sasl.el b/lisp/sasl.el index 000bca510..4b6616d33 100644 --- a/lisp/sasl.el +++ b/lisp/sasl.el @@ -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 diff --git a/lisp/score-mode.el b/lisp/score-mode.el index 532399bb0..6e022eb53 100644 --- a/lisp/score-mode.el +++ b/lisp/score-mode.el @@ -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 diff --git a/lisp/sha1.el b/lisp/sha1.el index c70b99c10..de2f0636b 100644 --- a/lisp/sha1.el +++ b/lisp/sha1.el @@ -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)))) diff --git a/lisp/sieve-manage.el b/lisp/sieve-manage.el index 0a7c8e96d..c39a6bb33 100644 --- a/lisp/sieve-manage.el +++ b/lisp/sieve-manage.el @@ -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 diff --git a/lisp/sieve-mode.el b/lisp/sieve-mode.el index 8dd94aee4..95d488f33 100644 --- a/lisp/sieve-mode.el +++ b/lisp/sieve-mode.el @@ -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 diff --git a/lisp/sieve.el b/lisp/sieve.el index c32c44ae5..a0c3d2623 100644 --- a/lisp/sieve.el +++ b/lisp/sieve.el @@ -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 diff --git a/lisp/smiley.el b/lisp/smiley.el index 7937679e1..3847603ab 100644 --- a/lisp/smiley.el +++ b/lisp/smiley.el @@ -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 diff --git a/lisp/smime.el b/lisp/smime.el index 7a8947383..ddf39cc3e 100644 --- a/lisp/smime.el +++ b/lisp/smime.el @@ -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 diff --git a/lisp/spam-report.el b/lisp/spam-report.el index 2f8590ab4..c4383d183 100644 --- a/lisp/spam-report.el +++ b/lisp/spam-report.el @@ -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. diff --git a/lisp/spam-stat.el b/lisp/spam-stat.el index bd6c6a25b..7b6df7048 100644 --- a/lisp/spam-stat.el +++ b/lisp/spam-stat.el @@ -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 diff --git a/lisp/spam-wash.el b/lisp/spam-wash.el index 70192e06c..d9e18d254 100644 --- a/lisp/spam-wash.el +++ b/lisp/spam-wash.el @@ -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 diff --git a/lisp/spam.el b/lisp/spam.el index f51453e64..6b2a647ed 100644 --- a/lisp/spam.el +++ b/lisp/spam.el @@ -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 diff --git a/lisp/starttls.el b/lisp/starttls.el index bffd2682f..fbacb91db 100644 --- a/lisp/starttls.el +++ b/lisp/starttls.el @@ -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 diff --git a/lisp/time-date.el b/lisp/time-date.el index e4cd4e546..413a01c03 100644 --- a/lisp/time-date.el +++ b/lisp/time-date.el @@ -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 diff --git a/lisp/tls.el b/lisp/tls.el index a0a9d7b58..4cdc00c44 100644 --- a/lisp/tls.el +++ b/lisp/tls.el @@ -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 diff --git a/lisp/utf7.el b/lisp/utf7.el index 269da5f6c..4eb15a95d 100644 --- a/lisp/utf7.el +++ b/lisp/utf7.el @@ -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 diff --git a/lisp/uudecode.el b/lisp/uudecode.el index 574ad0e78..ff238fae5 100644 --- a/lisp/uudecode.el +++ b/lisp/uudecode.el @@ -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 diff --git a/lisp/webmail.el b/lisp/webmail.el index 894b7d258..fc6f6b907 100644 --- a/lisp/webmail.el +++ b/lisp/webmail.el @@ -1150,5 +1150,5 @@ (provide 'webmail) -;;; arch-tag: f75a4558-a8f6-46ec-b1c3-7a6434b3dd71 +;; arch-tag: f75a4558-a8f6-46ec-b1c3-7a6434b3dd71 ;;; webmail.el ends here diff --git a/lisp/yenc.el b/lisp/yenc.el index a1cfa99ef..7cf5281d1 100644 --- a/lisp/yenc.el +++ b/lisp/yenc.el @@ -137,5 +137,5 @@ (provide 'yenc) -;;; arch-tag: 74df17e8-6fa8-4071-9f7d-54d548d79d9a +;; arch-tag: 74df17e8-6fa8-4071-9f7d-54d548d79d9a ;;; yenc.el ends here diff --git a/texi/ChangeLog b/texi/ChangeLog index 318220d6d..c778f5a5c 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -85,6 +85,12 @@ (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 + + * 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 * gnus.texi (Mail Source Customization, Gnus Development, Oort Gnus): @@ -266,7 +272,7 @@ (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,Ak(Bl Cadilhac +2007-08-31 Michaël Cadilhac * gnus.texi (Mail Source Specifiers, IMAP): Add a notice on the need to clean the output of the program `imap-shell-program'. @@ -315,7 +321,7 @@ * Relicense all FSF files to GPLv3 or later. -2007-07-20 Micha,Ak(Bl Cadilhac +2007-07-20 Michaël Cadilhac * gnus.texi (RSS): Document nnrss-ignore-article-fields. @@ -376,7 +382,7 @@ * gnus.texi (Limiting): Document gnus-summary-limit-to-address. -2007-05-11 Micha,Ak(Bl Cadilhac +2007-05-11 Michaël Cadilhac * gnus.texi (Group Maneuvering): Document `gnus-summary-next-group-on-exit'. @@ -536,7 +542,7 @@ * gnus.texi (Customizing Articles): Add index entries for all gnus-treat-* variables. -2006-12-29 Jouni K. Sepp,Ad(Bnen +2006-12-29 Jouni K. Seppänen * gnus.texi (IMAP): Fix incorrect explanation of nnimap-search-uids-not-since-is-evil in documentation for @@ -559,7 +565,7 @@ * gnus.texi (Spam Package Configuration Examples): Don't encourage to rebind C-s. -2006-12-26 Jouni K. Sepp,Ad(Bnen +2006-12-26 Jouni K. Seppänen * gnus.texi (Group Parameters, Group Maintenance, Topic Commands) (Mail Group Commands, Expiring Mail, IMAP): Add index entries for @@ -751,7 +757,7 @@ * gnus.texi (Summary Buffer Lines): Add `*'. -2006-04-07 Jochen K,A|(Bpper +2006-04-07 Jochen Küpper * gnus.texi (Group Parameters): Mention gnus-permanently-visible-groups. @@ -1324,7 +1330,7 @@ * message.texi, gnus.texi: Update copyright. * xml2texi.scm (+tag-for-gnus-faq-texi+): New variable. - (transform): Use it. From Karl Pfl,Ad(Bsterer with + (transform): Use it. From Karl Pflästerer with minor modifications. (boilerplate): Update copyright for the output file. @@ -1338,7 +1344,7 @@ (transform): Avoid redundant entries in @urefs. (format-node): Don't insert optional arguments of @node. -2005-03-20 Karl Pfl,Ad(Bsterer +2005-03-20 Karl Pflästerer * xml2texi.scm, xml2texi.sh: New files. PLT Scheme program to convert FAQ from xml to texi. @@ -1411,7 +1417,7 @@ * Makefile.in (.texi): Use LC_ALL instead of LANG. (makeinfo): Ditto. -2005-01-04 Jochen K,A|(Bpper +2005-01-04 Jochen Küpper * gnus.texi (Group Parameters): Slight extension of sieve parameter description. @@ -1839,7 +1845,7 @@ * texi2latex.el (latexi-translate-file): Support accents. - * gnus.texi: Don't use 8bit chars (except ,A,(B). + * gnus.texi: Don't use 8bit chars (except ¬). * emacs-mime.texi: do. @@ -2401,17 +2407,17 @@ * gnus.texi (Customizing Articles): Ditto. * gnus.texi (Image Enhancements): Put the Face node into the menu. -2003-06-17 Kai Gro,A_(Bjohann +2003-06-17 Kai Großjohann * gnus.texi (Splitting Mail): Add "splitting" entry and concept - index entries. Small patch from Karl Pfl,Ad(Bsterer + index entries. Small patch from Karl Pflästerer . 2003-06-15 Reiner Steib * gnus.texi (Daemons): Fixed typo. -2003-06-15 Kai Gro,A_(Bjohann +2003-06-15 Kai Großjohann * message.texi (Message Headers): Extend `message-subject-re-regexp' example. From Niklas Morberg @@ -2508,7 +2514,7 @@ * gnus.texi (Oort Gnus): Fix typo. -2003-05-03 Kai Gro,A_(Bjohann +2003-05-03 Kai Großjohann * gnus.texi (Agent Basics): Explain that some servers can be agentized, whereas others aren't. @@ -2618,7 +2624,7 @@ * gnus.texi (Server Variables): Added server parameters and index. -2003-04-21 Kai Gro,A_(Bjohann +2003-04-21 Kai Großjohann * gnus.texi (Group Parameters): Pointer to gnus-newsgroup-variables. @@ -2961,7 +2967,7 @@ * gnus.texi (Picons): Update. -2003-01-22 Kai Gro,A_(Bjohann +2003-01-22 Kai Großjohann * gnus.texi (Agent Expiry, Agent Variables): Don't use @pxref for index entries. @@ -3212,7 +3218,7 @@ * message.texi (Message Headers): Added example. (Message Headers): Addition. -2002-12-31 Kai Gro,A_(Bjohann +2002-12-31 Kai Großjohann * gnus.texi (Top): Add pointers to related manuals. Suggested by Reiner Steib. @@ -3256,14 +3262,14 @@ * gnus.texi (Mail): Explain nil value of gnus-uu-digest-headers. -2002-12-10 Kai Gro,A_(Bjohann +2002-12-10 Kai Großjohann * gnus.texi (Posting Styles): Clarify the `(header MATCH REGEXP)' case. (Back End Interface): Mention nnnotbackends. Suggested by Jan Rychter. -2002-11-29 Kai Gro,A_(Bjohann +2002-11-29 Kai Großjohann * gnus.texi (MIME Commands): Document gnus-inhibit-mime-unbuttonizing. @@ -3310,7 +3316,7 @@ * gnus.texi (Expiring in IMAP): Add. (Group Parameters): Add reference. -2002-11-16 Kai Gro,A_(Bjohann +2002-11-16 Kai Großjohann * gnus.texi (Expiring Mail): Give summary on difference between auto-expire and total-expire and provide information for choosing @@ -3330,7 +3336,7 @@ * gnus.texi (RSS): Add gnus-summary-mark-as-read-forward into the example code. From Christoph Conrad . -2002-10-17 Kai Gro,A_(Bjohann +2002-10-17 Kai Großjohann * gnus.texi (Other Marks): Document gnus-downloadable-mark and gnus-undownloaded-mark. Adapted idea from Sriram Karra @@ -3367,7 +3373,7 @@ * pgg.texi: New file. -2002-10-03 Kai Gro,A_(Bjohann +2002-10-03 Kai Großjohann * gnus.texi (Group Information): Mention prefix argument for gnus-group-fetch-charter and gnus-group-fetch-control. @@ -3393,19 +3399,19 @@ * gnus.texi (A note on namespaces): New. -2002-09-16 Kai Gro,A_(Bjohann +2002-09-16 Kai Großjohann * 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,A_(Bjohann +2002-09-15 Kai Großjohann * gnus.texi (Mail Source Specifiers): Say "one-to-one correspondence" in the description of `directory'. -2002-09-11 Kai Gro,b_(Bjohann +2002-09-11 Kai Großjohann * gnus.texi (Top, Summary Buffer): Add info to "Delayed Articles" menu line. @@ -3423,7 +3429,7 @@ * gnus.texi (Other Marks): Fix. -2002-09-09 Kai Gro,b_(Bjohann +2002-09-09 Kai Großjohann * gnus.texi (Splitting Mail): Typo. (Comparing Mail Back Ends): Say "back end" instead of "backend". @@ -3433,7 +3439,7 @@ * gnus.texi (Article Buttons): Add. -2002-09-09 Kai Gro,b_(Bjohann +2002-09-09 Kai Großjohann * gnus.texi (Splitting Mail): Document nnmail-resplit-incoming, xref to Mail Source Specifiers. @@ -3487,12 +3493,12 @@ (MIME Commands): Index gnus-article-decode-mime-words, gnus-article-decode-charset and gnus-mime-view-all-parts. -2002-08-20 Kai Gro,b_(Bjohann +2002-08-20 Kai Großjohann * gnus.texi (Mail Source Specifiers): Mention variable nnmail-resplit-incoming under `directory' specifier. -2002-08-18 Kai Gro,b_(Bjohann +2002-08-18 Kai Großjohann * gnus.texi (Summary Buffer Lines): Document the %k specifier. @@ -3510,7 +3516,7 @@ * gnus.texi (Summary Sorting): Document randomization. -2002-07-28 Kai Gro,b_(Bjohann +2002-07-28 Kai Großjohann * gnus.texi (Web Searches): Added gmane and removed old non-functioning search engines. From Niklas Morberg @@ -3531,7 +3537,7 @@ regenerate overviews via server buffer, and note to news admins about overview.fmt. -2002-07-14 Kai Gro,b_(Bjohann +2002-07-14 Kai Großjohann * gnus.texi (Posting Styles): Fix example (it was using the To header instead of the From header). From Christopher Splinter @@ -3551,12 +3557,12 @@ * gnus.texi (NNTP): Doc fix. -2002-07-02 Kai Gro,b_(Bjohann +2002-07-02 Kai Großjohann * gnus.texi (Washing Mail): Document the shortcoming of nnmail-remove-leading-whitespace. -2002-06-30 Kai Gro,b_(Bjohann +2002-06-30 Kai Großjohann * message.texi (News Headers): Include example for removing an entry from message-required-news-headers. @@ -3565,14 +3571,14 @@ * gnus.texi (NNTP): Add nntp-via-rlogin-command-switches. -2002-06-27 Kai Gro,b_(Bjohann +2002-06-27 Kai Großjohann * 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,b_(Bjohann +2002-06-25 Kai Großjohann * gnus.texi (Fancy Mail Splitting): Include all necessary variables in the Lisp example. @@ -3598,7 +3604,7 @@ * gnus.texi (Loose Threads): Add gnus-simplify-all-whitespace. -2002-05-08 Kai Gro,A_(Bjohann +2002-05-08 Kai Großjohann * gnus.texi (Mail-To-News Gateways): The default nngateway-header-transformation function inserts a "To" header, @@ -3668,7 +3674,7 @@ message-gen-unsubscribed-mft. From Karra . -2002-04-05 Kai Gro,A_(Bjohann +2002-04-05 Kai Großjohann * gnus.texi (Saving Articles): Add xref to Mail Group Commands because people might be interested in `B c' for saving articles. @@ -3825,11 +3831,11 @@ * message.texi (Various Commands): use the proper @point glyph. - * gnus.texi (Summary Mail Commands): ,A_(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): ,A'(B doesn't work. Use "section" instead. + * gnus.texi (Mail sources): § doesn't work. Use "section" instead. * gnus.texi (Mail Source Specifiers): use @url. @@ -4151,7 +4157,7 @@ * gnus.texi (Summary Mail Commands): advertise `gnus-summary-news-other-window'. -2001-12-10 Kai Gro,A_(Bjohann +2001-12-10 Kai Großjohann * gnus.texi (Advanced Scoring Examples): Clarify that the examples are rules, not complete score files. @@ -4160,7 +4166,7 @@ * gnus.texi (Expiring Mail): Add. -2001-12-05 Kai Gro,A_(Bjohann +2001-12-05 Kai Großjohann * gnus.texi (Splitting in IMAP): Typo. From Colin Marquardt . @@ -4234,7 +4240,7 @@ * message.texi (Security): * emacs-mime.texi (MML Definition): Add PGP. -2001-11-09 Kai Gro,A_(Bjohann +2001-11-09 Kai Großjohann * message.texi (Movement): message-beginning-of-line. @@ -4316,11 +4322,11 @@ * gnus.texi (Posting Server): Use `native' instead of `nil' for posting to native server. -2001-10-22 Kai Gro,A_(Bjohann +2001-10-22 Kai Großjohann * dir (File): Add standard explanation header. -2001-10-21 Kai Gro,A_(Bjohann +2001-10-21 Kai Großjohann * gnus.texi (Mail Source Specifiers): Explain more explicitly what happens for the `directory' entries. Say that mail from foo.spool @@ -4333,7 +4339,7 @@ * gnus.texi (Using MIME): s/mime/MIME/ for PDF version. -2001-10-19 Kai Gro,A_(Bjohann +2001-10-19 Kai Großjohann * gnus.texi (Finding the News): Disrecommend nnspool for Leafnode users. @@ -4519,7 +4525,7 @@ * gnus.texi (MIME Commands): Add gnus-buttonized-mime-types. -2001-09-08 Kai Gro,A_(Bjohann +2001-09-08 Kai Großjohann * gnus.texi (Topic Commands): Make this the first subsection of `Group Topics'. Rearrange keys to mention the most important keys @@ -4527,7 +4533,7 @@ C-k/C-y. (Group Buffer): Add comment from Alex Schroeder as todo item. -2001-09-06 Kai Gro,A_(Bjohann +2001-09-06 Kai Großjohann * gnus.texi (Fancy Mail Splitting): Mention `delete' near the explanation of `junk'. @@ -4538,12 +4544,12 @@ make a date format is `message-make-date', which should produce a time zone. -2001-09-04 Kai Gro,A_(Bjohann +2001-09-04 Kai Großjohann * gnus.texi (Optional Backend Functions): More detail about the DATE arg for nnchoke-request-newgroups. Reported by Paul Jarc. -2001-09-01 Kai Gro,A_(Bjohann +2001-09-01 Kai Großjohann * gnus.texi (Hooking New Backends Into Gnus): Say where to put the call for gnus-declare-backend. Add an index entry for @@ -4594,7 +4600,7 @@ * gnus.texi (Score Variables): Fix. -2001-08-20 Kai Gro,A_(Bjohann +2001-08-20 Kai Großjohann * gnus.texi (Delayed Articles): New section. Documents gnus-delay.el. @@ -4607,7 +4613,7 @@ (Positioning Point): New. (Tabulation): New. -2001-08-19 Kai Gro,A_(Bjohann +2001-08-19 Kai Großjohann * gnus.texi (Getting Started Reading Mail): Use (nnml "") rather than (nnml "private") as the example server specification. This @@ -4651,7 +4657,7 @@ Configuration'. After all, we're not talking about Microsoft. Suggested by Barry Fishman. -2001-08-11 Kai Gro,A_(Bjohann +2001-08-11 Kai Großjohann * gnus.texi (Summary Mail Commands): Remove duplicate explanation of `S W'. Reported by Norbert Koch. @@ -4666,11 +4672,11 @@ * gnus.texi (Mail Backend Variables): Fix. -2001-08-04 Kai Gro,A_(Bjohann +2001-08-04 Kai Großjohann * gnus.texi (Summary Buffer Lines): Mention `gnus-goto-colon'. -2001-08-03 Kai Gro,A_(Bjohann +2001-08-03 Kai Großjohann * gnus.texi (Backend Interface): Explain about article numbers. Suggested by Paul Jarc. @@ -4707,7 +4713,7 @@ * gnus.texi (Fancy Mail Splitting): New variable nnmail-split-fancy-with-parent-ignore-groups -2001-07-24 Kai Gro,A_(Bjohann +2001-07-24 Kai Großjohann * gnus.texi (Duplicates): Make split method regexp more specific, in case other `Gnus-Warning' headers are added in the future. @@ -4731,7 +4737,7 @@ * gnus.texi (Searching for Articles): Raw articles. -2001-07-16 Kai Gro,A_(Bjohann +2001-07-16 Kai Großjohann * message.texi (Insertion): Refer to gnus-cite-attribution-suffix. @@ -4766,12 +4772,12 @@ * gnus.texi (MIME Commands): Add. -2001-06-24 Kai Gro,A_(Bjohann +2001-06-24 Kai Großjohann * gnus.texi (Summary Score Commands): Say that some commands create ADAPT files. -2001-06-23 Kai Gro,A_(Bjohann +2001-06-23 Kai Großjohann * gnus.texi (Duplicates): Contents of Gnus-Warning header have changed. Reported by Peter J Acklam. @@ -4782,7 +4788,7 @@ * gnus-faq.texi (Frequently Asked Questions): Fix URL. -2001-06-17 Kai Gro,A_(Bjohann +2001-06-17 Kai Großjohann * gnus.texi (Group Line Specification): Explain why %t is only an estimate. @@ -4875,12 +4881,12 @@ * gnus.texi: Remove a few The's. (RSS): New. -2001-04-26 Kai Gro,A_(Bjohann +2001-04-26 Kai Großjohann * gnus.texi (Unread Articles): Say that dormants are similar to ticked. -2001-04-13 Kai Gro,A_(Bjohann +2001-04-13 Kai Großjohann * gnus.texi (Sorting Groups): Note `C-k' and `C-y' for manually moving groups around. @@ -4912,12 +4918,12 @@ * message.texi (Security): Typos. -2001-03-15 Kai Gro,A_(Bjohann +2001-03-15 Kai Großjohann * gnus.texi (Hiding Headers): Typos. Reported by Sriram Karra . -2001-03-11 Kai Gro,A_(Bjohann +2001-03-11 Kai Großjohann * message.texi (Message Headers): Update doc for `message-generate-headers-first'. @@ -4932,7 +4938,7 @@ * infohack.el (infohack): Set max-lisp-eval-depth to 600+. -2001-03-03 Kai Gro,A_(Bjohann +2001-03-03 Kai Großjohann * gnus.texi (Posting Styles): Posting styles have (NAME VALUE), not (NAME . VALUE). @@ -4963,7 +4969,7 @@ * gnus.texi (Optional Backend Functions): Fix case. -2001-02-14 Kai Gro,A_(Bjohann +2001-02-14 Kai Großjohann * gnus.texi (Unread Articles): Say that Gnus itself never expires ticked articles. Suggested by M D Greenhow @@ -4986,11 +4992,11 @@ * gnus.texi (Pterodactyl Gnus): Added. (Newest Features): Removed. Suggested by RMS. -2001-02-08 Kai Gro,A_(Bjohann +2001-02-08 Kai Großjohann * gnus.texi (Group Parameters): Mention `G c' in addition to `G p'. -2001-02-07 Kai Gro,A_(Bjohann +2001-02-07 Kai Großjohann * gnus.texi (To From Newsgroups): Make it clear where to put the sample code. Suggested by Dan Jacobson. @@ -4998,7 +5004,7 @@ * gnus.texi (Mail Source Specifiers, IMAP, Agent and IMAP): Improve IMAP discussion. -2001-02-07 Kai Gro,A_(Bjohann +2001-02-07 Kai Großjohann * message.texi (Message Headers): `message-generate-headers-first'. @@ -5059,7 +5065,7 @@ * message.texi (Security): Requires OpenSSL 0.9.6+. -2001-01-13 Kai Gro,A_(Bjohann +2001-01-13 Kai Großjohann * gnus.texi (Mail): Move explanation of `message-send-mail-partially-limit' to message.texi @@ -5074,7 +5080,7 @@ * gnus.texi (myself): Quote . -2001-01-05 Kai Gro,A_(Bjohann +2001-01-05 Kai Großjohann * gnus.texi (Choosing Commands): Add xref for redisplaying the group. Suggestion from Galen Boyer . @@ -5093,13 +5099,13 @@ * texi2latex.el (latexi-translate-file): Ignore anchor. -2001-01-04 Kai Gro,A_(Bjohann +2001-01-04 Kai Großjohann * 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,A_(Bjohann +2001-01-03 Kai Großjohann * gnus.texi (Article Washing): Mention `C-u g' as a sort of anti-washing. @@ -5112,7 +5118,7 @@ * texi2latex.el (latexi-translate-file): Understand uref. -2000-12-30 Kai Gro,A_(Bjohann +2000-12-30 Kai Großjohann * gnus.texi (Selecting a Group): Explain in more detail, what a prefix arg means for SPC. Refer people to M-g command from @@ -5166,7 +5172,7 @@ * gnus.texi (Adaptive Scoring): Use setq by Thomas Seck . -2000-12-21 Kai Gro,A_(Bjohann +2000-12-21 Kai Großjohann * gnus.texi (Article Washing): Doc addition by Paul Stevenson . @@ -5184,7 +5190,7 @@ * gnus.texi (Archived Messages): Add. -2000-11-20 Jochen K,A|(Bpper +2000-11-20 Jochen Küpper * gnus.texi (Security): Fix typo. @@ -5210,7 +5216,7 @@ * emacs-mime.texi (MML Definition): Add sign, encrypt, keyfile and certfile. -2000-11-07 Kai Gro,A_(Bjohann +2000-11-07 Kai Großjohann * gnus.texi (Mail Group Commands): `gnus-move-split-methods' uses group names as target, where `gnus-split-methods' uses file @@ -5220,7 +5226,7 @@ * gnus.texi: Doc fix. -2000-11-01 Kai Gro,A_(Bjohann +2000-11-01 Kai Großjohann * gnus.texi (Fancy Mail Splitting): Explain `nnmail-split-fancy-with-parent'. @@ -5237,18 +5243,18 @@ * gnus.texi (NNTP): Explain `port'. -2000-10-30 Kai Gro,A_(Bjohann +2000-10-30 Kai Großjohann * 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,A_(Bjohann +2000-10-28 Kai Großjohann * gnus.texi (Group Levels): Explain meaning of subscribed, unsubscribed, zombie, killed groups. -2000-10-26 Kai Gro,A_(Bjohann +2000-10-26 Kai Großjohann * gnus.texi (Gnus Development): nnmail-delete-incoming --> mail-source-delete-incoming. Suggested by Karl Kleinpaste @@ -5262,10 +5268,10 @@ * gnus.texi (IMAP): Add. -2000-10-05 Kai Gro,A_(Bjohann +2000-10-05 Kai Großjohann * gnus.texi (Windows Configuration): add examples; first example - suggested by Stein A. Str,Ax(Bmme . (The actual + suggested by Stein A. Strømme . (The actual Lisp code is also from him.) 2000-10-07 Dave Love @@ -5318,7 +5324,7 @@ * gnus.texi (IMAP): Add examples. -2000-09-19 Kai Gro,A_(Bjohann +2000-09-19 Kai Großjohann * gnus.texi (IMAP): Add pointer to description of ~/.authinfo file format. @@ -6088,7 +6094,7 @@ Thu Feb 25 00:28:49 1999 Shenghuo ZHU Boston, MA 02110-1301, USA. ;; Local Variables: -;; coding: iso-2022-7bit +;; coding: utf-8 ;; fill-column: 79 ;; add-log-time-zone-rule: t ;; End: diff --git a/texi/gnus.texi b/texi/gnus.texi index d57298435..47bfc565b 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -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 -- 2.25.1