(provide 'smtpmail)
-;;; arch-tag: a76992df-6d71-43b7-9e72-4bacc6c05466
+;; arch-tag: a76992df-6d71-43b7-9e72-4bacc6c05466
;;; smtpmail.el ends here
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
+2008-04-22 Juri Linkov <juri@jurta.org>
+
+ * mailcap.el (mailcap-file-default-commands): New function.
+
2008-04-13 Reiner Steib <Reiner.Steib@gmx.de>
* message.el (message-signature-separator, message-cite-function):
* gnus-registry.el: Initialize the registry when gnus-registry-install
is t.
+2008-04-08 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * compface.el (uncompface): Make buffer unibyte.
+
+2008-04-05 Glenn Morris <rgm@gnu.org>
+
+ * gnus-ems.el (mm-disable-multibyte): Autoload it.
+
+2008-04-05 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * mm-util.el (mm-with-unibyte-buffer, mm-with-multibyte-buffer): Prefer
+ mm-(en|dis)able-multibyte to default-enable-multibyte-characters.
+
+ * nnheader.el (nnheader-init-server-buffer): Change buffer's
+ multibyteness after rather than before erasing it.
+
+ * gnus-art.el (gnus-mime-replace-part): Remove unnecessary use of
+ mm-with-multibyte.
+ (gnus-request-article-this-buffer): Make sure the proper decoding is
+ used if gnus-original-article-buffer happens to be unibyte.
+
+ * gnus-ems.el (gnus-x-splash): Prefer mm-disable-multibyte to
+ default-enable-multibyte-characters.
+
+ * gnus-fun.el (gnus-display-x-face-in-from): Remove unnecessary use of
+ default-enable-multibyte-characters.
+
+ * mm-decode.el (mm-inline-media-tests): Add entry for x-diff.
+
+ * nnweb.el (nnweb-init): Avoid nn-with-unibyte.
+
2008-04-02 Simon Josefsson <simon@josefsson.org>
* imap.el (imap-enable-exchange-bug-workaround): New variable.
to enable bug workaround or not.
(nnimap-find-minmax-uid): Only enable workaround conditionally.
+2008-03-31 Glenn Morris <rgm@gnu.org>
+
+ * message.el (mml2015-use): Declare for compiler.
+ (message-info): Require mml2015 when appropriate.
+
2008-03-31 Katsumi Yamaoka <yamaoka@jpl.org>
* Makefile.in (EMACS_COMP): Quote directory name that might contain
whitespace.
+2008-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * nntp.el (nntp-netcat-command): Rename from nntp-via-netcat-command.
+ (nntp-netcat-switches): Rename from nntp-via-netcat-switches.
+ (nntp-open-telnet, nntp-open-rlogin): Use with-current-buffer.
+ (nntp-service-to-port): New function.
+ (nntp-open-via-rlogin-and-netcat, nntp-open-via-telnet-and-telnet)
+ (nntp-open-telnet-stream, nntp-open-via-rlogin-and-telnet): Use it.
+ (nntp-open-netcat-stream): New function.
+ (nntp-open-via-rlogin-and-netcat): Don't use a pty.
+
2008-03-29 Sven Joachim <svenjoac@gmx.de>
* gnus-sum.el (gnus-summary-make-menu-bar): Add missing dots.
+2008-03-29 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * message.el (message-make-in-reply-to): Use mm-with-multibyte-buffer.
+
+2008-03-28 Magnus Henoch <mange@freemail.hu>
+
+ * net/dns.el (dns-write): Use set-buffer-multibyte.
+
2008-03-28 Michael Harnois <mdharnois@gmail.com> (tiny change)
* nnimap.el (nnimap-find-minmax-uid): Fix Exchange 2007 IMAP problem.
2008-03-24 Reiner Steib <Reiner.Steib@gmx.de>
- * message.el (message-signature-separator): Change default. Improve
- custom type.
+ * message.el (message-signature-separator): Change default.
+ Improve custom type.
(message-cite-function): Change default to
message-cite-original-without-signature.
* message.el (message-simplify-recipients): Fix previous commit.
+2008-03-20 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * mm-util.el (mm-set-buffer-multibyte): New function.
+ * mm-decode.el (mm-copy-to-buffer): Use it.
+
2008-03-19 Glenn Morris <rgm@gnu.org>
* tls.el (open-tls-stream): Restore use of `tls-end-of-info'.
2008-03-19 Reiner Steib <Reiner.Steib@gmx.de>
- * message.el (message-alter-recipients-discard-bogus-full-name): New
- function.
+ * message.el (message-alter-recipients-discard-bogus-full-name):
+ New function.
(message-alter-recipients-function): New variable.
(message-get-reply-headers): Use it.
(message-replace-header): New helper function.
(gnus-button-alist): Extend gnus-button-handle-info-keystrokes entry.
(gnus-button-handle-info-keystrokes): Handle index entries.
+2008-03-15 Glenn Morris <rgm@gnu.org>
+
+ * calendar/parse-time.el (parse-time-string): Simplify.
+
2008-03-14 Katsumi Yamaoka <yamaoka@jpl.org>
* mail-source.el (mail-source-delete-old-incoming) Fix regexp to find
* auth-source.el (auth-sources): Renamed from auth-source-choices.
(auth-source-pick): Use it.
+2008-03-12 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * binhex.el (binhex-decode-region-internal):
+ * mail/uudecode.el (uudecode-decode-region-internal):
+ * dns.el (dns-read-string-name, dns-read, dns-read-type, query-dns):
+ * sha1.el (sha1-string-external): Use set-buffer-multibyte rather than
+ setting default-enable-multibyte-characters.
+
2008-03-12 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el (auth-source-protocols)
(nntp-open-via-rlogin-and-netcat, nntp-open-via-telnet-and-telnet):
Make sure the nntp port to specify is a string.
+2008-03-12 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * nntp.el: Use with-current-buffer.
+ (nntp-send-buffer): Just set the buffer to unibyte rather than use the
+ dubious mm-with-unibyte-current-buffer.
+ (nntp-with-open-group-function): New function extracted from
+ nntp-with-open-group macro.
+ (nntp-with-open-group): Use the function, so it's easier to debug.
+ Add indentation and debugging info.
+ (nntp-open-telnet-stream, nntp-open-via-rlogin-and-telnet): Recommend
+ the use of the netcat alternatives.
+
+ * rfc2047.el (rfc2047-decode-string): Don't use `m'.
+ Avoid mm-string-as-multibyte as well.
+
+ * nnweb.el (nnweb-insert-html):
+ Remove use of nnheader-string-as-multibyte.
+
+ * nnheader.el (nnheader-init-server-buffer): Use with-current-buffer.
+ (nnheader-string-as-multibyte): Remove.
+
+ * mm-view.el: Use inhibit-read-only.
+ (mm-inline-text-html-render-with-w3, mm-inline-message): Use dolist.
+ (mm-pkcs7-signed-magic, mm-pkcs7-enveloped-magic): Use just string
+ or unibyte-string.
+
+ * mm-uu.el (mm-uu-copy-to-buffer): Preserve (uni/multi)byteness.
+ (mm-uu-yenc-extract): Use with-current-buffer.
+
+ * gnus-soup.el (gnus-soup-send-packet): Don't use
+ mm-with-unibyte-current-buffer since the buffer is unibyte anyway.
+
+ * nnmh.el: Use with-current-buffer.
+ (nnmh-request-list-1): Use mm-string-to-multibyte rather than
+ mm-string-as-multibyte on the output of mm-encode-coding-string.
+
+ * nnimap.el (nnimap-retrieve-headers-progress): Use a unibyte buffer.
+ (nnimap-request-move-article): Use with-current-buffer.
+
+ * mm-decode.el (mm-with-part): Set the buffer to unibyte before
+ inserting the handle-buffer's text, so the implicit multibyte->unibyte
+ conversion uses string-make-unibyte rather than string-as-unibyte.
+
+ * gnus-msg.el: Use with-current-buffer.
+
+ * message.el (message-ignored-resent-headers): Add "Delivered-To".
+
2008-03-10 Daiki Ueno <ueno@unixuser.org>
* mml2015.el (mml2015-epg-passphrase-callback): Type cast KEY-ID to a
* lpath.el: Consider the case without Emacs/W3.
+2008-03-08 Glenn Morris <rgm@gnu.org>
+
+ * calendar/time-date.el (date-to-time, time-subtract, time-add)
+ (safe-date-to-time): Doc fixes.
+
2008-03-08 Reiner Steib <Reiner.Steib@gmx.de>
- * mail-source.el (mail-source-delete-old-incoming-confirm): Change
- default to nil.
+ * mail-source.el (mail-source-delete-old-incoming-confirm):
+ Change default to nil.
(mail-source-delete-old-incoming): Make confirmation prompt more clear.
2008-03-07 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-view.el (mm-w3m-standalone-supports-m17n-p): Fix typo.
+2008-03-07 Karl Fogel <kfogel@red-bean.com>
+
+ * gnus-bookmark.el: Adjust for renames in bookmark.el.
+ (gnus-bookmark-make-record): Was `gnus-bookmark-make-cell'.
+ (gnus-bookmark-jump): Adjust some variable names.
+
2008-03-06 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el: New package.
* gnus-registry.el (gnus-registry-install): Allow 'ask as an option.
(gnus-registry-initialize, gnus-registry-install-p): Use it.
- (gnus-registry-install-shortcuts): Renamed from
+ (gnus-registry-install-shortcuts): Rename from
gnus-registry-install-shortcuts-and-menus. Installs the shortcuts in
the `gnus-registry-mark-map' keymap dynamically from
`gnus-registry-marks'. The generated functions update the summary line
* gnus-sum.el (gnus-summary-make-menu-bar): Add menu entries for all
the registry mark functions.
+2008-03-05 Glenn Morris <rgm@gnu.org>
+
+ * gnus-art.el (gnus-article-mode-line-format-alist): Move to gnus-sum.
+ * gnus-sum.el (gnus-article-mode-line-format-alist): Move here from
+ gnus-art.
+ (top-level): No need to load own source when compiling.
+
2008-03-04 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-sum.el (gnus-print-buffer): Honor ps-print-color-p.
Suggested by <chris.anderton@zetnet.co.uk>.
+2008-03-04 Glenn Morris <rgm@gnu.org>
+
+ * gnus-sum.el (top-level): No need to require gnus when compiling,
+ since unconditionally required near start of file.
+ (gnus-summary-display-while-building): Move definition before use.
+
2008-03-04 Teodor Zlatanov <tzz@lifelogs.com>
* gnus-registry.el (gnus-registry-user-format-function-M): Add
* gnus-art.el (gnus-article-describe-bindings): Work for the version of
`where-is-internal' that returns a range of key sequences.
+2008-03-03 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * mm-bodies.el (mm-decode-content-transfer-encoding): Simplify.
+
+ * gnus-sum.el: Use inhibit-read-only and with-current-buffer.
+ (gnus-summary-jump-to-group): Consider windows on other displayed
+ frames as well. Similar changes might be needed elsewhere, but that's
+ the one I've bumped into during my use.
+
+ * nndoc.el (nndoc-oe-dbx-type-p):
+ * gnus-msg.el (gnus-debug):
+ * gnus-group.el (gnus-update-group-mark-positions):
+ Use mm-string-to-multibyte.
+
2008-03-02 Reiner Steib <Reiner.Steib@gmx.de>
* mml2015.el (mml2015-extract-cleartext-signature): Explain that it
2008-02-11 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-topic.el (gnus-topic-select-group, gnus-topic-read-group):
- Document negativ prefix.
+ Document negative prefix.
- * gnus-group.el (gnus-group-read-group): Document negativ prefix.
+ * gnus-group.el (gnus-group-read-group): Document negative prefix.
2008-02-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
(gnus-mime-delete-part): Don't write description line if empty.
(gnus-article-encrypt-body): Add confirmation for gnus-novice-user.
-2007-12-14 Johan Bockg\e,Ae\e(Brd <bojohan@gnu.org>
+2007-12-14 Johan Bockgård <bojohan@gnu.org>
* gnus-sum.el (gnus-summary-mark-unread-as-read)
(gnus-summary-mark-read-and-unread-as-read)
* gnus-cache.el (gnus-jog-cache): Ditto.
- * gnus-msg.el (gnus-summary-reply): Ignore
- gnus-confirm-mail-reply-to-news for wide and very wide replies.
+ * gnus-msg.el (gnus-summary-reply):
+ Ignore gnus-confirm-mail-reply-to-news for wide and very wide replies.
2007-11-24 Reiner Steib <Reiner.Steib@gmx.de>
2007-11-24 Reiner Steib <Reiner.Steib@gmx.de>
- * gnus-cache.el (gnus-cache-generate-nov-databases): Use
- nnml-generate-nov-databases-directory instead of
+ * gnus-cache.el (gnus-cache-generate-nov-databases):
+ Use nnml-generate-nov-databases-directory instead of
nnml-generate-nov-databases-1.
2007-11-24 Glenn Morris <rgm@gnu.org>
2007-10-26 Reiner Steib <Reiner.Steib@gmx.de>
* message.el (message-remove-blank-cited-lines): New function.
- Suggested by Karl Pl\e,Ad\e(Bsterer.
+ Suggested by Karl Plästerer.
2007-10-25 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-uu.el (mm-uu-type-alist): Refer to mm-uu-configure-list in doc
string.
-2007-07-20 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
+2007-07-20 Michaël Cadilhac <michael@cadilhac.name>
* nnrss.el (nnrss-ignore-article-fields): New variable. List of fields
that should be ignored when comparing distant RSS articles with local
2007-05-24 Katsumi Yamaoka <yamaoka@jpl.org>
- * message.el (message-narrow-to-headers-or-head): Ignore
- mail-header-separator in the body.
+ * message.el (message-narrow-to-headers-or-head):
+ Ignore mail-header-separator in the body.
2007-05-23 Katsumi Yamaoka <yamaoka@jpl.org>
* dgnushack.el: Autoload ad-add-advice for XEmacs. bbdb-com.el that
spam.el loads uses it in the compiled defadvice form.
-2007-05-12 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
+2007-05-12 Michaël Cadilhac <michael@cadilhac.name>
* gnus-sum.el (gnus-articles-to-read)
(gnus-summary-insert-old-articles): Don't truncate group name for
* gnus-sum.el (gnus-simplify-subject-fully): Use
`truncate-string-to-width' instead.
-2007-05-11 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
+2007-05-11 Michaël Cadilhac <michael@cadilhac.name>
* gnus-sum.el (gnus-summary-next-group-on-exit): New variable. Tell
if, on summary exit, the next group has to be selected.
* smiley.el (smiley-regexp-alist): Add "dead" smiley.
-2007-02-14 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
+2007-02-14 Michaël Cadilhac <michael@cadilhac.name>
* nntp.el (nntp-send-command): Don't wait for echoes when
nntp-open-ssl-stream is used.
* gnus-cite.el (gnus-message-citation-mode): Don't define in XEmacs.
-2006-12-29 Jouni K. Sepp\e,Ad\e(Bnen <jks@iki.fi>
+2006-12-29 Jouni K. Seppänen <jks@iki.fi>
* nnimap.el (nnimap-expunge-search-string): Mention
nnimap-search-uids-not-since-is-evil in docstring.
* gnus-sum.el (gnus-sort-threads, gnus-summary-limit-children):
Use `max' to avoid the value of `max-lisp-eval-depth' decreasing.
-2006-12-04 Jouni K. Sepp\e,Ad\e(Bnen <jks@iki.fi>
+2006-12-04 Jouni K. Seppänen <jks@iki.fi>
* mm-url.el (mm-url-predefined-programs): Call curl with correct
options.
* pgg-def.el (pgg-truncate-key-identifier): Truncate the key ID to 8
letters from the end. Thanks to "David Smith" <davidsmith@acm.org> and
- andreas@altroot.de (Andreas V\e,Av\e(Bgele).
+ andreas@altroot.de (Andreas Vögele).
FIXME: Use `tiny change'?
* nnrss.el (nnrss-check-group): Bind hash-index.
-2006-05-23 Micha\e,Ak\e(Bl Cadilhac <michael.cadilhac@lrde.org>
+2006-05-23 Michaël Cadilhac <michael.cadilhac@lrde.org>
* nnrss.el (nnrss-check-group): Use the md5sum of the whole RSS item as
its hash index. Store this hash in `nnrss-group-data'.
* gnus-topic.el (gnus-topic-display-missing-topic): Skip past
groups in the parent topic.
-2006-04-16 Jo\e,Ac\e(Bo Cachopo <joao.cachopo@inesc-id.pt> (tiny change)
+2006-04-16 João Cachopo <joao.cachopo@inesc-id.pt> (tiny change)
* spam.el (spam-necessary-extra-headers): Add X-CRM114-Status.
(spam-extra-header-to-number): Return the CRM114 number as a
* gnus-art.el (gnus-button-valid-localpart-regexp): Exclude `@'.
(gnus-article-browse-delete-temp): Add :version.
-2006-04-11 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2006-04-11 Arne Jørgensen <arne@arnested.dk>
* gnus-sieve.el (gnus-sieve-generate): Delete from the start of
the sieve region.
Lisp error; give up parsing of parameters if it failed in
extracting type.
-2006-02-14 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2006-02-14 Arne Jørgensen <arne@arnested.dk>
* smime.el (smime-cert-by-ldap-1): Fix bug where
`smime-ldap-search' returns results without userCertificates.
* mml.el (mml-preview): Use it; doc fix.
+2005-10-30 Chong Yidong <cyd@stupidchicken.com>
+
+ * imap.el (imap-open): Handle case where buffer is a buffer object.
+
2005-10-29 Romain Francoise <romain@orebokech.com>
* message.el (message-fix-before-sending): Fix comment.
whitespace removed in revision 7.8. Use concatenated string to
protect trailing whitespace.
-2005-10-27 Jouni K. Sepp\e,Ad\e(Bnen <jks@iki.fi>
+2005-10-27 Jouni K. Seppänen <jks@iki.fi>
* nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable.
(nnimap-request-expire-articles): Use it to avoid sending 'UID
* gnus-group.el (gnus-group-compact-group): Invalidate original
article buffer.
* gnus-srvr.el (gnus-server-compact-server): Ditto.
- * nnml.el (nnml-request-compact-group): handle self Xref: field in
+ * nnml.el (nnml-request-compact-group): Handle self Xref: field in
NOV database and in article itself.
Invalidate article backlog.
* message.el (message-display-completion-list): New function.
(message-expand-group): Use it; make sure the Completions buffer
is modifiable.
-
2005-10-23 Chong Yidong <cyd@stupidchicken.com>
* gnus-sum.el (gnus-ignored-from-addresses): Handle case where
* message.el (message-idna-to-ascii-rhs-1): Reformat.
-2005-09-27 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2005-09-27 Arne Jørgensen <arne@arnested.dk>
* message.el (message-remove-duplicates): New function.
Implementation borrowed from `gnus-remove-duplicates'.
2005-09-05 Reiner Steib <Reiner.Steib@gmx.de>
- * message.el (message-tab-body-function): Fixed mismatched custom
- type.
+ * message.el (message-tab-body-function): Fix mismatched custom type.
* gnus.el (gnus-group-change-level-function): Ditto.
* mm-extern.el (mm-extern-local-file, mm-inline-external-body):
* pop3.el (pop3-user): Don't use `format' on `error' arguments.
-2005-06-16 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2005-06-16 Arne Jørgensen <arne@arnested.dk>
* smime.el (smime-cert-by-ldap-1): Detect PEM format without
header by looking for magic "MII" at the beginnig.
* smime.el (smime-cert-by-ldap-1): Don't use
replace-regexp-in-string.
-2005-05-31 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2005-05-31 Arne Jørgensen <arne@arnested.dk>
* smime-ldap.el (smime-ldap-search): Add compatibility for XEmacs.
* nnimap.el (nnimap-retrieve-headers-from-server): Fix last change.
-2005-03-10 Arne J\e,Ax\e(Brgensen <arne@arnested.dk> (tiny change)
+2005-03-10 Arne Jørgensen <arne@arnested.dk> (tiny change)
* nnimap.el (nnimap-retrieve-headers-from-server): Fix off-by-one flaw.
* gnus-sum.el (gnus-summary-exit): Move point after displaying the
buffer, so it moves the window's cursor.
-2005-02-26 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2005-02-26 Arne Jørgensen <arne@arnested.dk>
* mm-decode.el (mm-dissect-buffer): Pass the from field on to
`mm-dissect-multipart' and receive the from field as an (optional)
2005-02-22 Simon Josefsson <jas@extundo.com>
* encrypt.el (encrypt-password-cache-expiry): Remove (use
- `password-cache-expiry' instead). Reported by Arne J\e,Ax\e(Brgensen
+ `password-cache-expiry' instead). Reported by Arne Jørgensen
<arne@arnested.dk>.
(encrypt): Add password-cache and password-cache-expiry as group
members.
-2005-02-22 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2005-02-22 Arne Jørgensen <arne@arnested.dk>
* smime.el (smime-ldap-host-list): Doc fix.
(smime-ask-passphrase): Use `password-read-and-add' to read (and
* mml.el (mml-parse-1): Use them.
-2005-02-21 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2005-02-21 Arne Jørgensen <arne@arnested.dk>
* nnrss.el (nnrss-verbose): Removed.
(nnrss-request-group): Use `nnheader-message' instead.
mml-smime-get-dns-ldap.
(mml-smime-encrypt-query): Use new function. Default to ldap.
-2005-02-14 Arne J\e,Ax\e(Brgensen <arne@arnested.dk>
+2005-02-14 Arne Jørgensen <arne@arnested.dk>
* smime.el: Require smime-ldap.
(smime-ldap-host-list): New variable.
2005-01-03 Reiner Steib <Reiner.Steib@gmx.de>
- * gnus-score.el (gnus-decay-scores, gnus-score-load-file): Allow
- to apply decay on score files matching a regexp.
+ * gnus-score.el (gnus-decay-scores, gnus-score-load-file):
+ Allow to apply decay on score files matching a regexp.
2004-12-30 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-header-button-alist): Handle URLs in OpenPGP:
headers separately.
- (gnus-button-openpgp): New function, inspired by Jochen K\e,A|\e(Bpper
+ (gnus-button-openpgp): New function, inspired by Jochen Küpper
<jochen-+It19tn3Rl9sbm7dSapR3bNAH6kLmebB@public.gmane.org>.
2004-11-14 Reiner Steib <Reiner.Steib@gmx.de>
2004-08-26 Katsumi Yamaoka <yamaoka@jpl.org>
- * nndoc.el (nndoc-type-alist): Fix regexp in the rfc822-forward
- entry.
+ * nndoc.el (nndoc-type-alist): Fix regexp in the rfc822-forward entry.
* gnus-group.el (gnus-group-line-format-alist): Convert the value
of gnus-tmp-news-method into string under XEmacs. It will be
(gnus-pp): New function.
(gnus-pp-to-string): New function.
- * gnus-cus.el (gnus-agent-cat-prepare-category-field): Replace
- pp-to-string with gnus-pp-to-string.
+ * gnus-cus.el (gnus-agent-cat-prepare-category-field):
+ Replace pp-to-string with gnus-pp-to-string.
* gnus-eform.el (gnus-edit-form): Replace pp with gnus-pp.
* gnus-group.el (gnus-group-make-kiboze-group): Ditto.
* gnus-msg.el (gnus-debug): Ditto.
2004-08-23 Katsumi Yamaoka <yamaoka@jpl.org>
- * gnus-art.el (article-display-face, article-display-x-face): Use
- buffer-read-only.
+ * gnus-art.el (article-display-face, article-display-x-face):
+ Use buffer-read-only.
2004-08-22 Katsumi Yamaoka <yamaoka@jpl.org>
- * gnus-art.el (article-hide-list-identifiers): Bind
- inhibit-read-only as t.
+ * gnus-art.el (article-hide-list-identifiers):
+ Bind inhibit-read-only as t.
2004-08-22 Reiner Steib <Reiner.Steib@gmx.de>
(spam-mark-junk-as-spam-routine): Use it. Allow to disable
assigning the spam-mark to new messages.
-2004-05-26 Adam Sj\e,Ax\e(Bgren <asjo@koldfront.dk> (tiny change)
+2004-05-26 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
(spam-ham-copy-or-move-routine): Don't declare `todo' twice.
(spam-crm114-unregister-spam-routine)
(spam-crm114-register-ham-routine)
(spam-crm114-unregister-ham-routine): Add CRM114 support. From
- asjo@koldfront.dk (Adam Sj\e,Ax\e(Bgren).
+ asjo@koldfront.dk (Adam Sjøgren).
* gnus.el: Add spam-use-crm114.
2004-04-25 Jesper Harder <harder@ifa.au.dk>
- * spam-stat.el (spam-stat-score-buffer): Simplify mapcar usage.
- Use mapc when appropriate.
-
- * sieve-manage.el (sieve-manage-open): do.
-
- * nnweb.el (nnweb-insert-html): do.
-
+ * sieve-manage.el (sieve-manage-open):
+ * nnweb.el (nnweb-insert-html):
* nnvirtual.el (nnvirtual-catchup-group, nnvirtual-partition-sequence)
- (nnvirtual-partition-sequence, nnvirtual-create-mapping): do.
-
- * nnspool.el (nnspool-request-group): do.
-
+ (nnvirtual-partition-sequence, nnvirtual-create-mapping):
+ * nnspool.el (nnspool-request-group):
* nnrss.el (nnrss-opml-export, nnrss-find-el, nnrss-order-hrefs):
- do.
-
- * nnml.el (nnml-request-update-info): do.
-
+ * nnml.el (nnml-request-update-info):
* nnmh.el (nnmh-request-group, nnmh-request-list-1, nnmh-active-number)
- (nnmh-request-create-group, nnmh-update-gnus-unreads): do.
-
+ (nnmh-request-create-group, nnmh-update-gnus-unreads):
* nnimap.el (nnimap-request-close, nnimap-acl-edit)
- (nnimap-request-set-mark): do.
-
- * nnfolder.el (nnfolder-request-update-info): do.
-
+ (nnimap-request-set-mark):
+ * nnfolder.el (nnfolder-request-update-info):
* mm-view.el (mm-pkcs7-signed-magic, mm-pkcs7-enveloped-magic):
- do.
-
- * mml.el (mml-destroy-buffers, mml-compute-boundary-1): do.
-
- * gnus-uu.el (gnus-uu-find-articles-matching): do.
-
+ * mml.el (mml-destroy-buffers, mml-compute-boundary-1):
+ * gnus-uu.el (gnus-uu-find-articles-matching):
* gnus-topic.el (gnus-topic-check-topology, gnus-topic-remove-group):
- do.
-
* gnus-sum.el (gnus-summary-fetch-faq, gnus-read-move-group-name):
- do.
-
- * gnus-score.el (gnus-score-load-file, gnus-sort-score-files): do.
-
- * gnus-nocem.el (gnus-nocem-scan-groups): do.
-
- * gnus-int.el (gnus-start-news-server): do.
-
+ * gnus-score.el (gnus-score-load-file, gnus-sort-score-files):
+ * gnus-nocem.el (gnus-nocem-scan-groups):
+ * gnus-int.el (gnus-start-news-server):
* gnus-group.el (gnus-group-make-kiboze-group)
- (gnus-group-browse-foreign-server): do.
+ (gnus-group-browse-foreign-server):
+ * spam-stat.el (spam-stat-score-buffer): Simplify mapcar usage.
+ Use mapc when appropriate.
2004-04-22 Teodor Zlatanov <tzz@lifelogs.com>
FIXME: Make separate entries for each person.
From Dan Christensen <jdc@uwo.ca>, asjo@koldfront.dk (Adam
- Sj\e,Ax\e(Bgren), Wes Hardaker <wes@hardakers.net>, and Michael Shields
+ Sjøgren), Wes Hardaker <wes@hardakers.net>, and Michael Shields
<shields@msrl.com>:
* spam.el (spam-necessary-extra-headers): Get the extra headers we
header.
(spam-summary-score): Add function to get a numeric score from the
headers.
- (spam-generic-score): Fixed function doc, was in wrong place.
+ (spam-generic-score): Fix function doc, was in wrong place.
(spam-initialize): Take symbols when it's run, and install the
extra headers that spam-necessary-extra-headers thinks we need.
2004-04-21 Teodor Zlatanov <tzz@lifelogs.com>
* spam.el (spam-summary-prepare-exit): Add logic and message fix.
- Reported by bojohan+news@dd.chalmers.se (Johan Bockg\e,Ae\e(Brd).
+ Reported by bojohan+news@dd.chalmers.se (Johan Bockgård).
2004-04-17 Jesper Harder <harder@ifa.au.dk>
(gnus-article-get-xrefs, gnus-summary-best-group)
(gnus-summary-next-article, gnus-summary-enter-digest-group)
(gnus-summary-set-bookmark, gnus-offer-save-summaries)
- (gnus-summary-update-info, gnus-kill-or-deaden-summary): Use
- with-current-buffer.
+ (gnus-summary-update-info, gnus-kill-or-deaden-summary):
+ Use with-current-buffer.
2004-04-16 Teodor Zlatanov <tzz@lifelogs.com>
(gnus-group-list-active): Let the agent store a server's active
list if currently plugged.
- * gnus-int.el (gnus-request-delete-group): Use
- gnus-cache-delete-group and gnus-agent-delete-group to keep the
+ * gnus-int.el (gnus-request-delete-group):
+ Use gnus-cache-delete-group and gnus-agent-delete-group to keep the
local disk in sync with the server.
- (gnus-request-rename-group): Use
- gnus-cache-rename-group and gnus-agent-rename-group to keep the
+ (gnus-request-rename-group):
+ Use gnus-cache-rename-group and gnus-agent-rename-group to keep the
local disk in sync with the server.
- * gnus-start.el (gnus-get-unread-articles): Cosmetic
- simplification to logic.
+ * gnus-start.el (gnus-get-unread-articles):
+ Cosmetic simplification to logic.
* gnus-util.el (gnus-rename-file): New function.
* gnus-score.el (gnus-score-edit-all-score): Fix prototype.
Invoke gnus-score-mode. Reported by
- bojohan+news@dd.chalmers.se (Johan Bockg\e,Ae\e(Brd).
+ bojohan+news@dd.chalmers.se (Johan Bockgård).
* gnus-range.el (gnus-compress-sequence): Doc fix. Suggested by
Jim Blandy <jimb@redhat.com> (tiny change).
2004-01-11 Jesper Harder <harder@ifa.au.dk>
- * gnus.sum.el (gnus-remove-odd-characters): Don't cons two new
- strings.
+ * gnus.sum.el (gnus-remove-odd-characters): Don't cons two new strings.
* mm-util.el (mm-subst-char-in-string): Support inplace.
2004-01-10 Jesper Harder <harder@ifa.au.dk>
- * gnus-start.el (gnus-subscribe-newsgroup, gnus-start-draft-setup)
- (gnus-group-change-level, gnus-kill-newsgroup)
- (gnus-check-bogus-newsgroups, gnus-get-unread-articles-in-group)
- (gnus-get-unread-articles, gnus-make-articles-unread)
- (gnus-make-ascending-articles-unread): Use accessor
- macros (gnus-group-entry, gnus-group-unread, gnus-info-marks etc.)
- to get group information for improved readability.
-
- * gnus-srvr.el (gnus-browse-unsubscribe-group): do.
-
- * gnus-soup.el (gnus-soup-group-brew): do.
-
- * gnus-msg.el (gnus-put-message): do.
-
- * gnus-move.el (gnus-group-move-group-to-server): do.
-
- * gnus-kill.el (gnus-batch-score): do.
-
+ * gnus-srvr.el (gnus-browse-unsubscribe-group):
+ * gnus-soup.el (gnus-soup-group-brew):
+ * gnus-msg.el (gnus-put-message):
+ * gnus-move.el (gnus-group-move-group-to-server):
+ * gnus-kill.el (gnus-batch-score):
* gnus-group.el (gnus-group-prepare-flat, gnus-group-delete-group)
(gnus-group-update-group-line, gnus-group-insert-group-line-info)
(gnus-group-update-group, gnus-group-read-group)
(gnus-group-sort-by-unread, gnus-group-catchup)
(gnus-group-unsubscribe-group, gnus-group-kill-group)
(gnus-group-yank-group, gnus-group-set-info)
- (gnus-group-list-groups): do.
-
- * gnus.el (gnus-generate-new-group-name): do.
-
- * gnus-delay.el (gnus-delay-send-queue): do.
-
- * nnvirtual.el (nnvirtual-catchup-group): do.
-
+ (gnus-group-list-groups):
+ * gnus.el (gnus-generate-new-group-name):
+ * gnus-delay.el (gnus-delay-send-queue):
+ * nnvirtual.el (nnvirtual-catchup-group):
* nnkiboze.el (nnkiboze-generate-group, nnkiboze-generate-group):
- do.
-
* gnus-topic.el (gnus-topic-find-groups, gnus-topic-clean-alist)
- (gnus-group-prepare-topics, gnus-topic-check-topology): do.
-
+ (gnus-group-prepare-topics, gnus-topic-check-topology):
* gnus-sum.el (gnus-update-read-articles, gnus-select-newsgroup)
(gnus-mark-xrefs-as-read, gnus-compute-read-articles)
(gnus-summary-walk-group-buffer, gnus-summary-move-article)
- (gnus-group-make-articles-read): do.
+ (gnus-group-make-articles-read):
+ * gnus-start.el (gnus-subscribe-newsgroup, gnus-start-draft-setup)
+ (gnus-group-change-level, gnus-kill-newsgroup)
+ (gnus-check-bogus-newsgroups, gnus-get-unread-articles-in-group)
+ (gnus-get-unread-articles, gnus-make-articles-unread)
+ (gnus-make-ascending-articles-unread): Use accessor
+ macros (gnus-group-entry, gnus-group-unread, gnus-info-marks etc.)
+ to get group information for improved readability.
+
2004-01-09 Jesper Harder <harder@ifa.au.dk>
* nnheaderxm.el: Remove definition of run-at-time.
-2004-01-05 Karl Pfl\e,Ad\e(Bsterer <sigurd@12move.de> (tiny change)
+2004-01-05 Karl Pflästerer <sigurd@12move.de> (tiny change)
* mml.el (mml-minibuffer-read-disposition): Show attachment type
in prompt.
Boston, MA 02110-1301, USA.
;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
;; fill-column: 79
;; add-log-time-zone-rule: t
;; End:
performed by gnus-agent-request-article.
* gnus-cus.el (gnus-agent-parameters): New variable. List of
customizable group/topic parameters that regulate the agent.
- (gnus-group-customize): Uses gnus-agent-parameters. Replaced
+ (gnus-group-customize): Uses gnus-agent-parameters. Replace
kill-buffer with gnus-kill-buffer to remove the killed buffer from
the list of gnus buffers.
(gnus-trim-whitespace): Removes leading and trailing whitespace
from multiline strings.
- (gnus-agent-cat-prepare-category-field,
- gnus-agent-customize-category): Constructs a category
+ (gnus-agent-cat-prepare-category-field)
+ (gnus-agent-customize-category): Constructs a category
customization buffer.
- * gnus-int.el (gnus-retrieve-headers,
- gnus-request-expire-articles): No longer checks gnus-agent-cache
+ * gnus-int.el (gnus-retrieve-headers)
+ (gnus-request-expire-articles): No longer checks gnus-agent-cache
as it is handled internally by the agent.
(gnus-request-head, gnus-request-body): Conditional checks
surrounding gnus-agent-request-article removed; now performed by
gnus-agent-request-article.
- * gnus-start.el (): Added defvar statements to resolve compilation
+ * gnus-start.el (): Add defvar statements to resolve compilation
warnings.
(gnus-long-file-names): New function. Isolates platform dependent
msdos-long-file-names.
errors when .newsrc.eld is huge.
(gnus-save-newsrc-file): Uses new
gnus-save-startup-file-via-temp-buffer.
- (gnus-gnus-to-quick-newsrc-format): Rewritten to write to
+ (gnus-gnus-to-quick-newsrc-format): Rewrite to write to
standard-output.
- (gnus-display-time-event-handler): Changed to alias from a defun
+ (gnus-display-time-event-handler): Change to alias from a defun
to avoid a compile-time warning when display-time-event-handler is
not defined.
- * gnus-util.el (gnus-with-output-to-file): New macro. Binds
- standard-output such that prin1 and princ will write directly to a
- file.
+ * gnus-util.el (gnus-with-output-to-file): New macro.
+ Binds standard-output such that prin1 and princ will write directly
+ to a file.
- * gnus.el (gnus-agent-cache): Expanded documentation.
- (gnus-summary-high-undownloaded-face): Removed second bold keyword
+ * gnus.el (gnus-agent-cache): Expand documentation.
+ (gnus-summary-high-undownloaded-face): Remove second bold keyword
so that this face is actually bold.
* nnkiboze.el (nnkiboze-request-article): Only use the cache when
2002-04-19 Jesper Harder <harder@ifa.au.dk>
- * nnkiboze.el (nnkiboze-request-scan): Call
- nnkiboze-possibly-change-group.
+ * nnkiboze.el (nnkiboze-request-scan):
+ Call nnkiboze-possibly-change-group.
(nnkiboze-generate-group): Use mm-with-unibyte to avoid encoding
problems.
(nnkiboze-generate-group): Set newsrc to the *highest* article
(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
(provide 'binhex)
-;;; arch-tag: 8476badd-1e76-4f1d-a640-f9a38c72eed8
+;; arch-tag: 8476badd-1e76-4f1d-a640-f9a38c72eed8
;;; binhex.el ends here
(provide 'canlock)
-;;; arch-tag: 033c4f09-b9f1-459d-bd0d-254430283f78
+;; arch-tag: 033c4f09-b9f1-459d-bd0d-254430283f78
;;; canlock.el ends here
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
(provide 'compface)
-;;; arch-tag: f9c78e84-98c0-4142-9682-8ba4cf4c3441
+;; arch-tag: f9c78e84-98c0-4142-9682-8ba4cf4c3441
;;; compface.el ends here
;; coding: iso-8859-1
;; End:
-;;; arch-tag: 5f895cc9-51a9-487c-b42e-28844d79eb73
+;; arch-tag: 5f895cc9-51a9-487c-b42e-28844d79eb73
;;; deuglify.el ends here
(provide 'dig)
-;;; arch-tag: 1d61726e-9400-4013-9ae7-4035e0c7f7d6
+;; arch-tag: 1d61726e-9400-4013-9ae7-4035e0c7f7d6
;;; dig.el ends here
(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)
"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
(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
(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 ()
(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
(run-hooks 'earcon-load-hook)
-;;; arch-tag: 844dfeea-980c-4ed0-907f-a30bf139691c
+;; arch-tag: 844dfeea-980c-4ed0-907f-a30bf139691c
;;; earcon.el ends here
(provide 'flow-fill)
-;;; arch-tag: addc0040-bc53-4f17-b4bc-1eb44eed6f0b
+;; arch-tag: addc0040-bc53-4f17-b4bc-1eb44eed6f0b
;;; flow-fill.el ends here
(provide 'format-spec)
-;;; arch-tag: c22d49cf-d167-445d-b7f1-2504d4173f53
+;; arch-tag: c22d49cf-d167-445d-b7f1-2504d4173f53
;;; format-spec.el ends here
(provide 'gnus-agent)
-;;; arch-tag: b0ba4afc-5229-4cee-ad25-9956daa4e91e
+;; arch-tag: b0ba4afc-5229-4cee-ad25-9956daa4e91e
;;; gnus-agent.el ends here
(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)
;; 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)
(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
(provide 'gnus-async)
-;;; arch-tag: fee61de5-3ea2-4de6-8578-2f90ce89391d
+;; arch-tag: fee61de5-3ea2-4de6-8578-2f90ce89391d
;;; gnus-async.el ends here
(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
(provide 'gnus-bcklg)
-;;; arch-tag: 66259e56-505a-4bba-8a0d-3552c5b94e39
+;; arch-tag: 66259e56-505a-4bba-8a0d-3552c5b94e39
;;; gnus-bcklg.el ends here
(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
(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))
(provide 'gnus-cache)
-;;; arch-tag: 05a79442-8c58-4e65-bd0a-3cbb1b89a33a
+;; arch-tag: 05a79442-8c58-4e65-bd0a-3cbb1b89a33a
;;; gnus-cache.el ends here
;; coding: iso-8859-1
;; End:
-;;; arch-tag: 1997b044-6067-471e-8c8f-dc903093098a
+;; arch-tag: 1997b044-6067-471e-8c8f-dc903093098a
;;; gnus-cite.el ends here
(provide 'gnus-cus)
-;;; arch-tag: a37c285a-49bc-4235-8244-804536effeaf
+;; arch-tag: a37c285a-49bc-4235-8244-804536effeaf
;;; gnus-cus.el ends here
(provide 'gnus-demon)
-;;; arch-tag: 8dd5cd3d-6ae4-46b4-9b15-f5fca09fd392
+;; arch-tag: 8dd5cd3d-6ae4-46b4-9b15-f5fca09fd392
;;; gnus-demon.el ends here
(provide 'gnus-diary)
-;;; arch-tag: 98467e70-337e-4ddc-b92d-45d403ff1b4b
+;; arch-tag: 98467e70-337e-4ddc-b92d-45d403ff1b4b
;;; gnus-diary.el ends here
(provide 'gnus-dired)
-;;; arch-tag: 44737731-e445-4638-a31e-713c7590ec76
+;; arch-tag: 44737731-e445-4638-a31e-713c7590ec76
;;; gnus-dired.el ends here
(provide 'gnus-draft)
-;;; arch-tag: 3d92af58-8c97-4a5c-9db4-a98e85198022
+;; arch-tag: 3d92af58-8c97-4a5c-9db4-a98e85198022
;;; gnus-draft.el ends here
(provide 'gnus-dup)
-;;; arch-tag: 903e94db-7b00-4d19-83ee-cf34a81fa5fb
+;; arch-tag: 903e94db-7b00-4d19-83ee-cf34a81fa5fb
;;; gnus-dup.el ends here
(provide 'gnus-eform)
-;;; arch-tag: ef50678c-2c28-49ef-affc-e53b3b2c0bf6
+;; arch-tag: ef50678c-2c28-49ef-affc-e53b3b2c0bf6
;;; gnus-eform.el ends here
mark-active) ; aliased to region-exists-p in XEmacs.
(autoload 'gnus-alive-p "gnus-util")
+(autoload 'mm-disable-multibyte "mm-util")
(defun gnus-x-splash ()
"Show a splash screen using a pixmap in the current buffer."
(sit-for 0) ;; Necessary for measuring the window size correctly.
(when (and file
(ignore-errors
- (let ((coding-system-for-read 'raw-text)
- default-enable-multibyte-characters)
+ (let ((coding-system-for-read 'raw-text))
(with-temp-buffer
+ (mm-disable-multibyte)
(insert-file-contents file)
(goto-char (point-min))
(setq pixmap (read (current-buffer)))))))
(provide 'gnus-ems)
-;;; arch-tag: e7360b45-14b5-4171-aa39-69a44aed3cdb
+;; arch-tag: e7360b45-14b5-4171-aa39-69a44aed3cdb
;;; gnus-ems.el ends here
(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))))
(provide 'gnus-fun)
-;;; arch-tag: 9d000a69-15cc-4491-9dc0-4627484f50c1
+;; arch-tag: 9d000a69-15cc-4491-9dc0-4627484f50c1
;;; gnus-fun.el ends here
(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."
(provide 'gnus-group)
-;;; arch-tag: 2eb5440f-0bca-4091-814c-e37817536af6
+;; arch-tag: 2eb5440f-0bca-4091-814c-e37817536af6
;;; gnus-group.el ends here
(provide 'gnus-int)
-;;; arch-tag: bbc90087-9b7f-4017-a92c-3abf180ac86d
+;; arch-tag: bbc90087-9b7f-4017-a92c-3abf180ac86d
;;; gnus-int.el ends here
(provide 'gnus-kill)
-;;; arch-tag: b30c0f53-df1a-490b-b81e-17b13474f395
+;; arch-tag: b30c0f53-df1a-490b-b81e-17b13474f395
;;; gnus-kill.el ends here
(provide 'gnus-logic)
-;;; arch-tag: 9651a100-4a59-4b69-a55b-e511e67c0f8d
+;; arch-tag: 9651a100-4a59-4b69-a55b-e511e67c0f8d
;;; gnus-logic.el ends here
(provide 'gnus-mh)
-;;; arch-tag: 2d5696d3-b363-48e5-8749-c256be56acca
+;; arch-tag: 2d5696d3-b363-48e5-8749-c256be56acca
;;; gnus-mh.el ends here
(provide 'gnus-ml)
-;;; arch-tag: 936c0fe6-acce-4c16-87d0-eded88078896
+;; arch-tag: 936c0fe6-acce-4c16-87d0-eded88078896
;;; gnus-ml.el ends here
(provide 'gnus-mlspl)
-;;; arch-tag: 62b3381f-1e45-4b61-be1a-29fb27703322
+;; arch-tag: 62b3381f-1e45-4b61-be1a-29fb27703322
;;; gnus-mlspl.el ends here
(provide 'gnus-move)
-;;; arch-tag: 503742b8-7d66-4d79-bb31-4a698070707b
+;; arch-tag: 503742b8-7d66-4d79-bb31-4a698070707b
;;; gnus-move.el ends here
(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)
""))
;; #### 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)
;; #### 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)
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)
(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)
(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)
;; 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
(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)
"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)
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)))
(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)))
(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 ()
(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)))
;; 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))))
(provide 'gnus-msg)
-;;; arch-tag: 9f22b2f5-1c0a-49de-916e-4c88e984852b
+;; arch-tag: 9f22b2f5-1c0a-49de-916e-4c88e984852b
;;; gnus-msg.el ends here
(provide 'gnus-nocem)
-;;; arch-tag: 0e0c74ea-2f8e-4f3e-8fff-09f767c1adef
+;; arch-tag: 0e0c74ea-2f8e-4f3e-8fff-09f767c1adef
;;; gnus-nocem.el ends here
(provide 'gnus-picon)
-;;; arch-tag: fe9aede0-1b1b-463a-b4ab-807f98bcb31f
+;; arch-tag: fe9aede0-1b1b-463a-b4ab-807f98bcb31f
;;; gnus-picon.el ends here
(provide 'gnus-range)
-;;; arch-tag: 4780bdd8-5a15-4aff-be28-18727895b6ad
+;; arch-tag: 4780bdd8-5a15-4aff-be28-18727895b6ad
;;; gnus-range.el ends here
(provide 'gnus-registry)
-;;; arch-tag: 5cba0a32-718a-4a97-8c91-0a15af21da94
+;; arch-tag: 5cba0a32-718a-4a97-8c91-0a15af21da94
;;; gnus-registry.el ends here
(provide 'gnus-score)
-;;; arch-tag: d3922589-764d-46ae-9954-9330fd192634
+;; arch-tag: d3922589-764d-46ae-9954-9330fd192634
;;; gnus-score.el ends here
(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
(provide 'gnus-sieve)
-;;; arch-tag: 3b906527-c7f3-4c86-9e82-62e2697998a3
+;; arch-tag: 3b906527-c7f3-4c86-9e82-62e2697998a3
;;; gnus-sieve.el ends here
(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)
(provide 'gnus-soup)
-;;; arch-tag: eddfa69d-13e8-4aea-84ef-62a526ef185c
+;; arch-tag: eddfa69d-13e8-4aea-84ef-62a526ef185c
;;; gnus-soup.el ends here
;; coding: iso-8859-1
;; End:
-;;; arch-tag: a4328fa1-1f84-4b09-97ad-4b5767cfd50f
+;; arch-tag: a4328fa1-1f84-4b09-97ad-4b5767cfd50f
;;; gnus-spec.el ends here
(provide 'gnus-srvr)
-;;; arch-tag: c0117f64-27ca-475d-9406-8da6854c7a25
+;; arch-tag: c0117f64-27ca-475d-9406-8da6854c7a25
;;; gnus-srvr.el ends here
(?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.")
\"^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.
(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)
(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)
(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)
(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)
(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))
(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)
(not (equal "" references)))
references))
"none")))
- (buffer-read-only nil)
+ (inhibit-read-only t)
(old (car thread)))
(when thread
(unless iheader
(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))))
: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 ...]...) ...])'
(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
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)
(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)
"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.
(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))))
(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))))
(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)
(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)
(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.
(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)
(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)
(?\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)
;; 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"))
(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")
(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))
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)
(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))
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)
(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)
(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)))))
(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))
(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))
(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))))
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)
(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
;; 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
(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)))
: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,
(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))
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.
"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)
(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)
(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)
(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
(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))))))
(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))))))
(= 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)
(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")
(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
(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)
(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
(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))))
"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)
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)
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
(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))))))
"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))
(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
;; 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)
;; 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))
;; 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)
(provide 'gnus-topic)
-;;; arch-tag: bf176856-f30c-40f0-ae77-e41529a1134c
+;; arch-tag: bf176856-f30c-40f0-ae77-e41529a1134c
;;; gnus-topic.el ends here
(provide 'gnus-undo)
-;;; arch-tag: 0d787bc7-787d-499a-837f-211d2cb07f2e
+;; arch-tag: 0d787bc7-787d-499a-837f-211d2cb07f2e
;;; gnus-undo.el ends here
(provide 'gnus-util)
-;;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49
+;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49
;;; gnus-util.el ends here
(provide 'gnus-uu)
-;;; arch-tag: 05312384-0a83-4720-9a58-b3160b888853
+;; arch-tag: 05312384-0a83-4720-9a58-b3160b888853
;;; gnus-uu.el ends here
(provide 'gnus-vm)
-;;; arch-tag: 42ca7f88-a12f-461d-be3e-cac7efb44866
+;; arch-tag: 42ca7f88-a12f-461d-be3e-cac7efb44866
;;; gnus-vm.el ends here
(provide 'gnus-win)
-;;; arch-tag: ccd5a394-2ddf-4397-b8f8-6d80d3e46e2b
+;; arch-tag: ccd5a394-2ddf-4397-b8f8-6d80d3e46e2b
;;; gnus-win.el ends here
(provide 'gnus)
-;;; arch-tag: acebeeab-f331-4f8f-a7ea-89c58c84f636
+;; arch-tag: acebeeab-f331-4f8f-a7ea-89c58c84f636
;;; gnus.el ends here
(provide 'hashcash)
-;;; arch-tag: 0e7fe983-a124-4392-9788-0dbcbd2c4d62
+;; arch-tag: 0e7fe983-a124-4392-9788-0dbcbd2c4d62
(provide 'hmac-def)
-;;; arch-tag: 645adcef-b835-4900-a10a-11f636c982b9
+;; arch-tag: 645adcef-b835-4900-a10a-11f636c982b9
;;; hmac-def.el ends here
(provide 'hmac-md5)
-;;; arch-tag: 0ab3f4f6-3d4b-4167-a9fa-635b7fed7f27
+;; arch-tag: 0ab3f4f6-3d4b-4167-a9fa-635b7fed7f27
;;; hmac-md5.el ends here
;; </Interactive functions>
;;
(provide 'html2text)
-;;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e
+;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e
;;; html2text.el ends here
(provide 'ietf-drums)
-;;; arch-tag: 379a0191-dbae-4ca6-a0f5-d4202c209ef9
+;; arch-tag: 379a0191-dbae-4ca6-a0f5-d4202c209ef9
;;; ietf-drums.el ends here
(provide 'imap)
-;;; arch-tag: 27369ed6-33e4-482f-96f1-8bb906ba70f7
+;; arch-tag: 27369ed6-33e4-482f-96f1-8bb906ba70f7
;;; imap.el ends here
(provide 'mail-parse)
-;;; arch-tag: 3e63d75c-c962-4784-ab01-7ba07ca9d2d4
+;; arch-tag: 3e63d75c-c962-4784-ab01-7ba07ca9d2d4
;;; mail-parse.el ends here
(provide 'mail-prsvr)
-;;; arch-tag: 9ba878cc-8b43-4f7a-85b1-69b1a9a5d9f5
+;; arch-tag: 9ba878cc-8b43-4f7a-85b1-69b1a9a5d9f5
;;; mail-prsvr.el ends here
(provide 'mail-source)
-;;; arch-tag: 72948025-1d17-4d6c-bb12-ef1aa2c490fd
+;; arch-tag: 72948025-1d17-4d6c-bb12-ef1aa2c490fd
;;; mail-source.el ends here
(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
(provide 'md4)
-;;; arch-tag: 99d706fe-089b-42ea-9507-67ae41091e6e
+;; arch-tag: 99d706fe-089b-42ea-9507-67ae41091e6e
;;; md4.el ends here
: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")
(autoload 'Info-goto-node "info")
+(defvar mml2015-use)
(defun message-info (&optional arg)
"Display the Message manual.
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)))
;; 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 \""
(provide 'messcompat)
-;;; arch-tag: a76673be-905e-4bbd-8966-615370494a7b
+;; arch-tag: a76673be-905e-4bbd-8966-615370494a7b
;;; messcompat.el ends here
(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))
(provide 'mm-bodies)
-;;; arch-tag: 41104bb6-4443-4ca9-8d5c-ff87ecf27d8d
+;; arch-tag: 41104bb6-4443-4ca9-8d5c-ff87ecf27d8d
;;; mm-bodies.el ends here
;; 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)
(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))))
(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))
(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? "
(provide 'mm-encode)
-;;; arch-tag: 7d01bba4-d469-4851-952b-dc863f84ed66
+;; arch-tag: 7d01bba4-d469-4851-952b-dc863f84ed66
;;; mm-encode.el ends here
(provide 'mm-extern)
-;;; arch-tag: 9653808e-14d9-4172-86e6-adceaa05378e
+;; arch-tag: 9653808e-14d9-4172-86e6-adceaa05378e
;;; mm-extern.el ends here
(provide 'mm-partial)
-;;; arch-tag: 460e7424-05f2-4a1d-a0f2-70ec081eff7d
+;; arch-tag: 460e7424-05f2-4a1d-a0f2-70ec081eff7d
;;; mm-partial.el ends here
(provide 'mm-url)
-;;; arch-tag: 0594f9b3-417c-48b0-adc2-5082e1e7917f
+;; arch-tag: 0594f9b3-417c-48b0-adc2-5082e1e7917f
;;; mm-url.el ends here
(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."
(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))
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)
;; 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)
(defun mm-inline-image-emacs (handle)
(let ((b (point-marker))
- buffer-read-only)
+ (inhibit-read-only t))
(put-image (mm-get-image handle) b)
(insert "\n\n")
(mm-handle-set-undisplayer
handle
`(lambda ()
(let ((b ,b)
- buffer-read-only)
+ (inhibit-read-only t))
(remove-images b b)
(delete-region b (+ b 2)))))))
(insert "\n\n")
(forward-char -2)
(let ((annot (make-annotation (mm-get-image handle) nil 'text))
- buffer-read-only)
+ (inhibit-read-only t))
(mm-handle-set-undisplayer
handle
`(lambda ()
(let ((b ,(point-marker))
- buffer-read-only)
+ (inhibit-read-only t))
(delete-annotation ,annot)
(delete-region (- b 2) b))))
(set-extent-property annot 'mm t)
(mm-handle-set-undisplayer
handle
`(lambda ()
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
,@(if (functionp 'remove-specifier)
- '((mapcar (lambda (prop)
- (remove-specifier
- (face-property 'default prop)
- (current-buffer)))
- '(background background-pixmap foreground))))
+ '((dolist (prop '(background background-pixmap foreground))
+ (remove-specifier
+ (face-property 'default prop)
+ (current-buffer)))))
(delete-region ,(point-min-marker)
,(point-max-marker)))))))))
(defun mm-inline-text-html (handle)
(let* ((func (or mm-inline-text-html-renderer mm-text-html-renderer))
(entry (assq func mm-text-html-renderer-alist))
- buffer-read-only)
+ (inhibit-read-only t))
(if entry
(setq func (cdr entry)))
(cond
(apply (car func) handle (cdr func))))))
(defun mm-inline-text-vcard (handle)
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(mm-insert-inline
handle
(concat "\n-- \n"
(type (mm-handle-media-subtype handle))
(charset (mail-content-type-get
(mm-handle-type handle) 'charset))
- buffer-read-only)
+ (inhibit-read-only t))
(if (or (eq charset 'gnus-decoded)
;; This is probably not entirely correct, but
;; makes rfc822 parts with embedded multiparts work.
(goto-char (point-max))))
(save-restriction
(narrow-to-region b (point))
- (when (or (equal type "enriched")
- (equal type "richtext"))
- (set-text-properties (point-min) (point-max) nil)
+ (when (member type '("enriched" "richtext"))
+ (set-text-properties (point-min) (point-max) nil)
(ignore-errors
(enriched-decode (point-min) (point-max))))
(mm-handle-set-undisplayer
handle
`(lambda ()
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(delete-region ,(point-min-marker)
,(point-max-marker))))))))
(mm-handle-set-undisplayer
handle
`(lambda ()
- (let (buffer-read-only)
- (delete-region ,(set-marker (make-marker) b)
- ,(set-marker (make-marker) (point))))))))
+ (let ((inhibit-read-only t))
+ (delete-region ,(copy-marker b)
+ ,(copy-marker (point))))))))
(defun mm-inline-audio (handle)
(message "Not implemented"))
(mm-handle-set-undisplayer
handle
`(lambda ()
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(if (fboundp 'remove-specifier)
;; This is only valid on XEmacs.
- (mapcar (lambda (prop)
- (remove-specifier
- (face-property 'default prop) (current-buffer)))
- '(background background-pixmap foreground)))
+ (dolist (prop '(background background-pixmap foreground))
+ (remove-specifier
+ (face-property 'default prop) (current-buffer))))
(delete-region ,(point-min-marker) ,(point-max-marker)))))))))
(defun mm-display-inline-fontify (handle mode)
;; id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
;; us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }
(defvar mm-pkcs7-signed-magic
- (mm-string-as-unibyte
- (mapconcat 'char-to-string
- (list ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c
- ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e
- ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48
- ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x02) "")))
+ (funcall (if (fboundp 'unibyte-string) 'unibyte-string 'string)
+ ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c
+ ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e
+ ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48
+ ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x02))
;; id-envelopedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
;; us(840) rsadsi(113549) pkcs(1) pkcs7(7) 3 }
(defvar mm-pkcs7-enveloped-magic
- (mm-string-as-unibyte
- (mapconcat 'char-to-string
- (list ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c
- ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e
- ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48
- ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x03) "")))
+ (funcall (if (fboundp 'unibyte-string) 'unibyte-string 'string)
+ ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c
+ ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e
+ ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48
+ ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x03))
(defun mm-view-pkcs7-get-type (handle)
(mm-with-unibyte-buffer
(provide 'mm-view)
-;;; arch-tag: b60e749a-d05c-47f2-bccd-bdaa59327cb2
+;; arch-tag: b60e749a-d05c-47f2-bccd-bdaa59327cb2
;;; mm-view.el ends here
(provide 'mml-sec)
-;;; arch-tag: 111c56e7-df5e-4287-87d7-93ed2911ec6c
+;; arch-tag: 111c56e7-df5e-4287-87d7-93ed2911ec6c
;;; mml-sec.el ends here
(provide 'mml-smime)
-;;; arch-tag: f1bf94d4-f2cd-4c6f-b059-ad69492817e2
+;; arch-tag: f1bf94d4-f2cd-4c6f-b059-ad69492817e2
;;; mml-smime.el ends here
(provide 'mml)
-;;; arch-tag: 583c96cf-1ffe-451b-a5e5-4733ae9ddd12
+;; arch-tag: 583c96cf-1ffe-451b-a5e5-4733ae9ddd12
;;; mml.el ends here
;; coding: iso-8859-1
;; End:
-;;; arch-tag: e542be18-ab28-4393-9b33-97fe9cf30706
+;; arch-tag: e542be18-ab28-4393-9b33-97fe9cf30706
;;; mml1991.el ends here
(provide 'mml2015)
-;;; arch-tag: b04701d5-0b09-44d8-bed8-de901bf435f2
+;; arch-tag: b04701d5-0b09-44d8-bed8-de901bf435f2
;;; mml2015.el ends here
(provide 'netrc)
-;;; arch-tag: af9929cc-2d12-482f-936e-eb4366f9fa55
+;; arch-tag: af9929cc-2d12-482f-936e-eb4366f9fa55
;;; netrc.el ends here
(provide 'nnagent)
-;;; arch-tag: af710b77-f816-4969-af31-6fd94fb42245
+;; arch-tag: af710b77-f816-4969-af31-6fd94fb42245
;;; nnagent.el ends here
(provide 'nnbabyl)
-;;; arch-tag: aa7ddedb-8c07-4c0e-beb0-58e795c2b81b
+;; arch-tag: aa7ddedb-8c07-4c0e-beb0-58e795c2b81b
;;; nnbabyl.el ends here
(provide 'nndb)
-;;; arch-tag: 83bd6fb4-58d9-4fed-a901-c6c625ad5f8a
+;; arch-tag: 83bd6fb4-58d9-4fed-a901-c6c625ad5f8a
;;; nndb.el ends here
(provide 'nndiary)
-;;; arch-tag: 9c542b95-92e7-4ace-a038-330ab296e203
+;; arch-tag: 9c542b95-92e7-4ace-a038-330ab296e203
;;; nndiary.el ends here
(provide 'nndir)
-;;; arch-tag: 56f09f68-0e4e-4816-818a-df80b4a394c8
+;; arch-tag: 56f09f68-0e4e-4816-818a-df80b4a394c8
;;; nndir.el ends here
(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))
(provide 'nndoc)
-;;; arch-tag: f5c2970e-0387-47ac-a0b3-6cc317dffabe
+;; arch-tag: f5c2970e-0387-47ac-a0b3-6cc317dffabe
;;; nndoc.el ends here
(provide 'nndraft)
-;;; arch-tag: 3ce26ca0-41cb-48b1-8703-4dad35e188aa
+;; arch-tag: 3ce26ca0-41cb-48b1-8703-4dad35e188aa
;;; nndraft.el ends here
(provide 'nneething)
-;;; arch-tag: 1277f386-88f2-4459-bb24-f3f45962a6c5
+;; arch-tag: 1277f386-88f2-4459-bb24-f3f45962a6c5
;;; nneething.el ends here
(provide 'nnfolder)
-;;; arch-tag: a040d0f4-4f4e-445f-8972-839575c5f7e6
+;; arch-tag: a040d0f4-4f4e-445f-8972-839575c5f7e6
;;; nnfolder.el ends here
(provide 'nngateway)
-;;; arch-tag: f7ecb92e-b10c-43d5-9a9b-1314233341fc
+;; arch-tag: f7ecb92e-b10c-43d5-9a9b-1314233341fc
;;; nngateway.el ends here
(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)
(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
(provide 'nnheader)
-;;; arch-tag: a9c4b7d9-52ae-4ec9-b196-dfd93124d202
+;; arch-tag: a9c4b7d9-52ae-4ec9-b196-dfd93124d202
;;; nnheader.el ends here
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)))
;; 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))
(provide 'nnkiboze)
-;;; arch-tag: 66068271-bdc9-4801-bcde-779702e73a05
+;; arch-tag: 66068271-bdc9-4801-bcde-779702e73a05
;;; nnkiboze.el ends here
(provide 'nnlistserv)
-;;; arch-tag: 7705176f-d332-4a5e-a520-d0d319445617
+;; arch-tag: 7705176f-d332-4a5e-a520-d0d319445617
;;; nnlistserv.el ends here
(provide 'nnmail)
-;;; arch-tag: fe8f671a-50db-428a-bb5d-f00462f72ed7
+;; arch-tag: fe8f671a-50db-428a-bb5d-f00462f72ed7
;;; nnmail.el ends here
;; fill-column: 77
;; End:
-;;; arch-tag: 0c4e44cd-dfde-4040-888e-5597ec771849
+;; arch-tag: 0c4e44cd-dfde-4040-888e-5597ec771849
;;; nnmaildir.el ends here
(provide 'nnmbox)
-;;; arch-tag: 611dd95f-be37-413a-b3ae-8b059ba93659
+;; arch-tag: 611dd95f-be37-413a-b3ae-8b059ba93659
;;; nnmbox.el ends here
(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))
(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
(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))
(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))
(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
(provide 'nnmh)
-;;; arch-tag: 36c12a98-3bad-44b3-9953-628078ef0e04
+;; arch-tag: 36c12a98-3bad-44b3-9953-628078ef0e04
;;; nnmh.el ends here
(provide 'nnml)
-;;; arch-tag: 52c97dc3-9735-45de-b439-9e4d23b52004
+;; arch-tag: 52c97dc3-9735-45de-b439-9e4d23b52004
;;; nnml.el ends here
(provide 'nnnil)
-;;; arch-tag: a982a1a3-bc5e-4fb1-a233-d7657a3e3257
+;; arch-tag: a982a1a3-bc5e-4fb1-a233-d7657a3e3257
(provide 'nnoo)
-;;; arch-tag: 0196b5ed-6f34-4778-a455-73a971f837e7
+;; arch-tag: 0196b5ed-6f34-4778-a455-73a971f837e7
;;; nnoo.el ends here
(provide 'nnrss)
-
+;; arch-tag: 12910c07-0cdf-44fb-8d2c-416ded64c267
;;; nnrss.el ends here
-
-;;; arch-tag: 12910c07-0cdf-44fb-8d2c-416ded64c267
(provide 'nnslashdot)
-;;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3
+;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3
;;; nnslashdot.el ends here
(provide 'nnsoup)
-;;; arch-tag: b0451389-5703-4450-9425-f66f6b38c828
+;; arch-tag: b0451389-5703-4450-9425-f66f6b38c828
;;; nnsoup.el ends here
(provide 'nnspool)
-;;; arch-tag: bdac8d27-2934-4eee-bad0-49e6b90c0d05
+;; arch-tag: bdac8d27-2934-4eee-bad0-49e6b90c0d05
;;; nnspool.el ends here
- `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
(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.
(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)
(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)))
(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.
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)
;; 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)
;; 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))))
(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))
(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)
(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]+"))
(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)))))
(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)
(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)
(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)
?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)
(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)
(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
(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)
(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))
(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)
;; 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
(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)))
(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
(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))
(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',
(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))
"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',
(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)
- `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.
- `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)
,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 " ")
(provide 'nntp)
-;;; arch-tag: 8655466a-b1b5-4929-9c45-7b1b2e767271
+;; arch-tag: 8655466a-b1b5-4929-9c45-7b1b2e767271
;;; nntp.el ends here
;; coding: iso-8859-1
;; End:
-;;; arch-tag: ab6bfc45-8fe1-4647-9c78-41050eb152b8
+;; arch-tag: ab6bfc45-8fe1-4647-9c78-41050eb152b8
;;; nnultimate.el ends here
(provide 'nnvirtual)
-;;; arch-tag: ca8c8ad9-1bd8-4b0f-9722-90dc645a45f5
+;; arch-tag: ca8c8ad9-1bd8-4b0f-9722-90dc645a45f5
;;; nnvirtual.el ends here
(provide 'nnwarchive)
-;;; arch-tag: 1ab7a15c-777a-40e0-95c0-0c41b3963578
+;; arch-tag: 1ab7a15c-777a-40e0-95c0-0c41b3963578
;;; nnwarchive.el ends here
"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
(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)
(provide 'nnweb)
-;;; arch-tag: f59307eb-c90f-479f-b7d2-dbd8bf51b697
+;; arch-tag: f59307eb-c90f-479f-b7d2-dbd8bf51b697
;;; nnweb.el ends here
;; coding: iso-8859-1
;; End:
-;;; arch-tag: d813966a-4211-4557-ad11-d1ac2bc86536
+;; arch-tag: d813966a-4211-4557-ad11-d1ac2bc86536
;;; nnwfm.el ends here
(provide 'ntlm)
-;;; arch-tag: 348ace18-f8e2-4176-8fe9-d9ab4e96f296
+;; arch-tag: 348ace18-f8e2-4176-8fe9-d9ab4e96f296
;;; ntlm.el ends here
;;; parse-time.el --- parsing time strings
-;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+;; 2008 Free Software Foundation, Inc.
;; Author: Erik Naggum <erik@naggum.no>
;; Keywords: util
(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))
(provide 'parse-time)
-;;; arch-tag: 07066094-45a8-4c68-b307-86195e2c1103
+;; arch-tag: 07066094-45a8-4c68-b307-86195e2c1103
;;; parse-time.el ends here
(provide 'password-cache)
-;;; arch-tag: ab160494-16c8-4c68-a4a1-73eebf6686e5
+;; arch-tag: ab160494-16c8-4c68-a4a1-73eebf6686e5
;;; password-cache.el ends here
(provide 'pgg-def)
-;;; arch-tag: c425f3ab-ed75-4055-bb46-431a418c94b7
+;; arch-tag: c425f3ab-ed75-4055-bb46-431a418c94b7
;;; pgg-def.el ends here
(provide 'pgg-gpg)
-;;; arch-tag: 2aa5d5d8-93a0-4865-9312-33e29830e000
+;; arch-tag: 2aa5d5d8-93a0-4865-9312-33e29830e000
;;; pgg-gpg.el ends here
(provide 'pgg-parse)
-;;; arch-tag: 16c2eb82-1313-4a7c-a70f-420709b5b43e
+;; arch-tag: 16c2eb82-1313-4a7c-a70f-420709b5b43e
;;; pgg-parse.el ends here
(provide 'pgg-pgp5)
-;;; arch-tag: 3dbd1073-6b3a-466c-9f55-5c587ffa6d7b
+;; arch-tag: 3dbd1073-6b3a-466c-9f55-5c587ffa6d7b
;;; pgg-pgp5.el ends here
(provide 'pgg)
-;;; arch-tag: 9cc705dd-1e6a-4c90-8dce-c3561f9a2cf4
+;; arch-tag: 9cc705dd-1e6a-4c90-8dce-c3561f9a2cf4
;;; pgg.el ends here
(provide 'pop3)
-;;; arch-tag: 2facc142-1d74-498e-82af-4659b64cac12
+;; arch-tag: 2facc142-1d74-498e-82af-4659b64cac12
;;; pop3.el ends here
(provide 'qp)
-;;; arch-tag: db89e52a-e4a1-4b69-926f-f434f04216ba
+;; arch-tag: db89e52a-e4a1-4b69-926f-f434f04216ba
;;; qp.el ends here
(provide 'rfc1843)
-;;; arch-tag: 5149c301-a6ca-4731-9c9d-ba616e2cb687
+;; arch-tag: 5149c301-a6ca-4731-9c9d-ba616e2cb687
;;; rfc1843.el ends here
(provide 'rfc2045)
-;;; arch-tag: 9ca54127-97bc-432c-b6e2-8c59cadba306
+;; arch-tag: 9ca54127-97bc-432c-b6e2-8c59cadba306
;;; rfc2045.el ends here
"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))
(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)))
(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.
(provide 'rfc2047)
-;;; arch-tag: a07fe3d4-22b5-4c4a-bd89-b1f82d5d36f6
+;; arch-tag: a07fe3d4-22b5-4c4a-bd89-b1f82d5d36f6
;;; rfc2047.el ends here
(provide 'rfc2104)
-;;; arch-tag: cf671d5c-a45f-4a09-815e-704e59e43950
+;; arch-tag: cf671d5c-a45f-4a09-815e-704e59e43950
;;; rfc2104.el ends here
(provide 'rfc2231)
-;;; arch-tag: c3ab751d-d108-406a-b301-68882ad8cd63
+;; arch-tag: c3ab751d-d108-406a-b301-68882ad8cd63
;;; rfc2231.el ends here
(provide 'sasl-cram)
-;;; arch-tag: 46cb281b-975a-4fe0-a39f-3018691b1b05
+;; arch-tag: 46cb281b-975a-4fe0-a39f-3018691b1b05
;;; sasl-cram.el ends here
(provide 'sasl-digest)
-;;; arch-tag: 786e02ed-1bc4-4b3c-bf34-96c27e31084d
+;; arch-tag: 786e02ed-1bc4-4b3c-bf34-96c27e31084d
;;; sasl-digest.el ends here
(provide 'sasl-ntlm)
-;;; arch-tag: 1d9164c1-1df0-418f-b7ab-360157fd05dc
+;; arch-tag: 1d9164c1-1df0-418f-b7ab-360157fd05dc
;;; sasl-ntlm.el ends here
(provide 'sasl)
-;;; arch-tag: 8b3326fa-4978-4fda-93e2-cb2c6255f887
+;; arch-tag: 8b3326fa-4978-4fda-93e2-cb2c6255f887
;;; sasl.el ends here
(provide 'score-mode)
-;;; arch-tag: a74a416b-2505-4ad4-bc4e-a418c96b8845
+;; arch-tag: a74a416b-2505-4ad4-bc4e-a418c96b8845
;;; score-mode.el ends here
: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))))
(provide 'sieve-manage)
-;;; arch-tag: 321c4640-1371-4495-9baf-8ccb71dd5bd1
+;; arch-tag: 321c4640-1371-4495-9baf-8ccb71dd5bd1
;; sieve-manage.el ends here
(provide 'sieve-mode)
-;;; arch-tag: 3b8ab76d-065d-4c52-b1e8-ab2ec21f2ace
+;; arch-tag: 3b8ab76d-065d-4c52-b1e8-ab2ec21f2ace
;; sieve-mode.el ends here
(provide 'sieve)
-;;; arch-tag: 7f6a6d94-94e1-4654-ab9a-aee21b9b8a94
+;; arch-tag: 7f6a6d94-94e1-4654-ab9a-aee21b9b8a94
;; sieve.el ends here
(provide 'smiley)
-;;; arch-tag: 5beb161b-4321-40af-8ac9-876afb8ee818
+;; arch-tag: 5beb161b-4321-40af-8ac9-876afb8ee818
;;; smiley.el ends here
(provide 'smime)
-;;; arch-tag: e3f9b938-5085-4510-8a11-6625269c9a9e
+;; arch-tag: e3f9b938-5085-4510-8a11-6625269c9a9e
;;; smime.el ends here
(provide 'spam-report)
-;;; arch-tag: f6683295-ec89-4ab5-8803-8cc842293022
+;; arch-tag: f6683295-ec89-4ab5-8803-8cc842293022
;;; spam-report.el ends here.
(provide 'spam-stat)
-;;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554
+;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554
;;; spam-stat.el ends here
(provide 'spam-wash)
-;;; arch-tag: 3c7f94a7-c96d-4c77-bb59-950df12bc85f
+;; arch-tag: 3c7f94a7-c96d-4c77-bb59-950df12bc85f
;;; spam-wash.el ends here
(provide 'spam)
-;;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f
+;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f
;;; spam.el ends here
(provide 'starttls)
-;;; arch-tag: 648b3bd8-63bd-47f5-904c-7c819aea2297
+;; arch-tag: 648b3bd8-63bd-47f5-904c-7c819aea2297
;;; starttls.el ends here
;;;###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
;;;###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))
;;;###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)
;;;###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)
(provide 'time-date)
-;;; arch-tag: addcf07b-b20a-465b-af72-550b8ac5190f
+;; arch-tag: addcf07b-b20a-465b-af72-550b8ac5190f
;;; time-date.el ends here
(provide 'tls)
-;;; arch-tag: 5596d1c4-facc-4bc4-94a9-9863b928d7ac
+;; arch-tag: 5596d1c4-facc-4bc4-94a9-9863b928d7ac
;;; tls.el ends here
(provide 'utf7)
-;;; arch-tag: 96078b55-85c7-4161-aed2-932c24b282c7
+;; arch-tag: 96078b55-85c7-4161-aed2-932c24b282c7
;;; utf7.el ends here
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))))))
(provide 'uudecode)
-;;; arch-tag: e1f09ed5-62b4-4677-9f13-4e81c4fe8ce3
+;; arch-tag: e1f09ed5-62b4-4677-9f13-4e81c4fe8ce3
;;; uudecode.el ends here
(provide 'webmail)
-;;; arch-tag: f75a4558-a8f6-46ec-b1c3-7a6434b3dd71
+;; arch-tag: f75a4558-a8f6-46ec-b1c3-7a6434b3dd71
;;; webmail.el ends here
(provide 'yenc)
-;;; arch-tag: 74df17e8-6fa8-4071-9f7d-54d548d79d9a
+;; arch-tag: 74df17e8-6fa8-4071-9f7d-54d548d79d9a
;;; yenc.el ends here
(Formatting Fonts): Add index entries for gnus-mouse-face, gnus-face-0,
gnus-balloon-face-0 and the corresponding format specifiers.
+2008-03-14 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * gnus.texi (Example Methods, Direct Functions, Indirect Functions)
+ (Common Variables): Give precedence to the netcat methods over the
+ telnet methods, and mention that they are more reliable.
+
2008-03-08 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Mail Source Customization, Gnus Development, Oort Gnus):
(Misc Group Stuff): Move gnus-group-name-charset-method-alist and
gnus-group-name-charset-group-alist to Non-ASCII Group Names node.
-2007-08-31 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
+2007-08-31 Michaël Cadilhac <michael@cadilhac.name>
* gnus.texi (Mail Source Specifiers, IMAP): Add a notice on the need to
clean the output of the program `imap-shell-program'.
* Relicense all FSF files to GPLv3 or later.
-2007-07-20 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
+2007-07-20 Michaël Cadilhac <michael@cadilhac.name>
* gnus.texi (RSS): Document nnrss-ignore-article-fields.
* gnus.texi (Limiting): Document gnus-summary-limit-to-address.
-2007-05-11 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
+2007-05-11 Michaël Cadilhac <michael@cadilhac.name>
* gnus.texi (Group Maneuvering): Document
`gnus-summary-next-group-on-exit'.
* gnus.texi (Customizing Articles): Add index entries for all
gnus-treat-* variables.
-2006-12-29 Jouni K. Sepp\e,Ad\e(Bnen <jks@iki.fi>
+2006-12-29 Jouni K. Seppänen <jks@iki.fi>
* gnus.texi (IMAP): Fix incorrect explanation of
nnimap-search-uids-not-since-is-evil in documentation for
* gnus.texi (Spam Package Configuration Examples): Don't encourage to
rebind C-s.
-2006-12-26 Jouni K. Sepp\e,Ad\e(Bnen <jks@iki.fi>
+2006-12-26 Jouni K. Seppänen <jks@iki.fi>
* gnus.texi (Group Parameters, Group Maintenance, Topic Commands)
(Mail Group Commands, Expiring Mail, IMAP): Add index entries for
* gnus.texi (Summary Buffer Lines): Add `*'.
-2006-04-07 Jochen K\e,A|\e(Bpper <jochen@fhi-berlin.mpg.de>
+2006-04-07 Jochen Küpper <jochen@fhi-berlin.mpg.de>
* gnus.texi (Group Parameters): Mention
gnus-permanently-visible-groups.
* message.texi, gnus.texi: Update copyright.
* xml2texi.scm (+tag-for-gnus-faq-texi+): New variable.
- (transform): Use it. From Karl Pfl\e,Ad\e(Bsterer <sigurd@12move.de> with
+ (transform): Use it. From Karl Pflästerer <sigurd@12move.de> with
minor modifications.
(boilerplate): Update copyright for the output file.
(transform): Avoid redundant entries in @urefs.
(format-node): Don't insert optional arguments of @node.
-2005-03-20 Karl Pfl\e,Ad\e(Bsterer <sigurd@12move.de>
+2005-03-20 Karl Pflästerer <sigurd@12move.de>
* xml2texi.scm, xml2texi.sh: New files. PLT Scheme program to
convert FAQ from xml to texi.
* Makefile.in (.texi): Use LC_ALL instead of LANG.
(makeinfo): Ditto.
-2005-01-04 Jochen K\e,A|\e(Bpper <jochen@fhi-berlin.mpg.de>
+2005-01-04 Jochen Küpper <jochen@fhi-berlin.mpg.de>
* gnus.texi (Group Parameters): Slight extension of sieve
parameter description.
* texi2latex.el (latexi-translate-file): Support accents.
- * gnus.texi: Don't use 8bit chars (except \e,A,\e(B).
+ * gnus.texi: Don't use 8bit chars (except ¬).
* emacs-mime.texi: do.
* gnus.texi (Customizing Articles): Ditto.
* gnus.texi (Image Enhancements): Put the Face node into the menu.
-2003-06-17 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+2003-06-17 Kai Großjohann <kai.grossjohann@gmx.net>
* gnus.texi (Splitting Mail): Add "splitting" entry and concept
- index entries. Small patch from Karl Pfl\e,Ad\e(Bsterer
+ index entries. Small patch from Karl Pflästerer
<sigurd@12move.de>.
2003-06-15 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Daemons): Fixed typo.
-2003-06-15 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+2003-06-15 Kai Großjohann <kai.grossjohann@gmx.net>
* message.texi (Message Headers): Extend
`message-subject-re-regexp' example. From Niklas Morberg
* gnus.texi (Oort Gnus): Fix typo.
-2003-05-03 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+2003-05-03 Kai Großjohann <kai.grossjohann@gmx.net>
* gnus.texi (Agent Basics): Explain that some servers can be
agentized, whereas others aren't.
* gnus.texi (Server Variables): Added server parameters and index.
-2003-04-21 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+2003-04-21 Kai Großjohann <kai.grossjohann@gmx.net>
* gnus.texi (Group Parameters): Pointer to
gnus-newsgroup-variables.
* gnus.texi (Picons): Update.
-2003-01-22 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@uni-duisburg.de>
+2003-01-22 Kai Großjohann <kai.grossjohann@uni-duisburg.de>
* gnus.texi (Agent Expiry, Agent Variables): Don't use @pxref for
index entries.
* message.texi (Message Headers): Added example.
(Message Headers): Addition.
-2002-12-31 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@uni-duisburg.de>
+2002-12-31 Kai Großjohann <kai.grossjohann@uni-duisburg.de>
* gnus.texi (Top): Add pointers to related manuals. Suggested by
Reiner Steib.
* gnus.texi (Mail): Explain nil value of gnus-uu-digest-headers.
-2002-12-10 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@uni-duisburg.de>
+2002-12-10 Kai Großjohann <kai.grossjohann@uni-duisburg.de>
* gnus.texi (Posting Styles): Clarify the `(header MATCH REGEXP)'
case.
(Back End Interface): Mention nnnotbackends. Suggested by Jan
Rychter.
-2002-11-29 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@uni-duisburg.de>
+2002-11-29 Kai Großjohann <kai.grossjohann@uni-duisburg.de>
* gnus.texi (MIME Commands): Document gnus-inhibit-mime-unbuttonizing.
* gnus.texi (Expiring in IMAP): Add.
(Group Parameters): Add reference.
-2002-11-16 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@uni-duisburg.de>
+2002-11-16 Kai Großjohann <kai.grossjohann@uni-duisburg.de>
* gnus.texi (Expiring Mail): Give summary on difference between
auto-expire and total-expire and provide information for choosing
* gnus.texi (RSS): Add gnus-summary-mark-as-read-forward into the
example code. From Christoph Conrad <christoph.conrad@gmx.de>.
-2002-10-17 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-10-17 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Other Marks): Document gnus-downloadable-mark and
gnus-undownloaded-mark. Adapted idea from Sriram Karra
* pgg.texi: New file.
-2002-10-03 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-10-03 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Group Information): Mention prefix argument for
gnus-group-fetch-charter and gnus-group-fetch-control.
* gnus.texi (A note on namespaces): New.
-2002-09-16 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-16 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Splitting Mail): "By default, splitting is performed
on all incoming messages." This sentence had a "not" too many.
Explicitly say that `nnmail-resplit-incoming' has effect only for
`directory' mail-sources entries.
-2002-09-15 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-15 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Mail Source Specifiers): Say "one-to-one
correspondence" in the description of `directory'.
-2002-09-11 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-11 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Top, Summary Buffer): Add info to "Delayed Articles"
menu line.
* gnus.texi (Other Marks): Fix.
-2002-09-09 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-09 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Splitting Mail): Typo.
(Comparing Mail Back Ends): Say "back end" instead of "backend".
* gnus.texi (Article Buttons): Add.
-2002-09-09 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-09-09 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Splitting Mail): Document nnmail-resplit-incoming,
xref to Mail Source Specifiers.
(MIME Commands): Index gnus-article-decode-mime-words,
gnus-article-decode-charset and gnus-mime-view-all-parts.
-2002-08-20 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-08-20 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Mail Source Specifiers): Mention variable
nnmail-resplit-incoming under `directory' specifier.
-2002-08-18 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-08-18 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Summary Buffer Lines): Document the %k specifier.
* gnus.texi (Summary Sorting): Document randomization.
-2002-07-28 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-07-28 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Web Searches): Added gmane and removed old
non-functioning search engines. From Niklas Morberg
regenerate overviews via server buffer, and note to news admins
about overview.fmt.
-2002-07-14 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-07-14 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Posting Styles): Fix example (it was using the To
header instead of the From header). From Christopher Splinter
* gnus.texi (NNTP): Doc fix.
-2002-07-02 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-07-02 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Washing Mail): Document the shortcoming of
nnmail-remove-leading-whitespace.
-2002-06-30 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-06-30 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* message.texi (News Headers): Include example for removing an
entry from message-required-news-headers.
* gnus.texi (NNTP): Add nntp-via-rlogin-command-switches.
-2002-06-27 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-06-27 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Mail Back End Variables): Document
nnmail-cache-ignore-groups. Xref Fancy Mail Splitting.
(Fancy Mail Splitting): Mention nnmail-cache-ignore-groups and
why it is useful.
-2002-06-25 Kai Gro\e,b_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-06-25 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Fancy Mail Splitting): Include all necessary
variables in the Lisp example.
* gnus.texi (Loose Threads): Add gnus-simplify-all-whitespace.
-2002-05-08 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-05-08 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Mail-To-News Gateways): The default
nngateway-header-transformation function inserts a "To" header,
message-gen-unsubscribed-mft.
From Karra <karra@cs.utah.edu>.
-2002-04-05 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-04-05 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Saving Articles): Add xref to Mail Group Commands
because people might be interested in `B c' for saving articles.
* message.texi (Various Commands): use the proper @point glyph.
- * gnus.texi (Summary Mail Commands): \e,A_\e(B doesn't work. A German
+ * gnus.texi (Summary Mail Commands): ß doesn't work. A German
spelling reform changed the correct spelling to "muss" anyway (I
think).
- * gnus.texi (Mail sources): \e,A'\e(B doesn't work. Use "section" instead.
+ * gnus.texi (Mail sources): § doesn't work. Use "section" instead.
* gnus.texi (Mail Source Specifiers): use @url.
* gnus.texi (Summary Mail Commands): advertise
`gnus-summary-news-other-window'.
-2001-12-10 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-12-10 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Advanced Scoring Examples): Clarify that the
examples are rules, not complete score files.
* gnus.texi (Expiring Mail): Add.
-2001-12-05 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-12-05 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Splitting in IMAP): Typo. From Colin Marquardt
<c.marquardt@alcatel.de>.
* message.texi (Security):
* emacs-mime.texi (MML Definition): Add PGP.
-2001-11-09 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-11-09 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* message.texi (Movement): message-beginning-of-line.
* gnus.texi (Posting Server): Use `native' instead of `nil' for
posting to native server.
-2001-10-22 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-10-22 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* dir (File): Add standard explanation header.
-2001-10-21 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-10-21 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Mail Source Specifiers): Explain more explicitly what
happens for the `directory' entries. Say that mail from foo.spool
* gnus.texi (Using MIME): s/mime/MIME/ for PDF version.
-2001-10-19 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-10-19 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Finding the News): Disrecommend nnspool for Leafnode
users.
* gnus.texi (MIME Commands): Add gnus-buttonized-mime-types.
-2001-09-08 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-09-08 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Topic Commands): Make this the first subsection of
`Group Topics'. Rearrange keys to mention the most important keys
C-k/C-y.
(Group Buffer): Add comment from Alex Schroeder as todo item.
-2001-09-06 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-09-06 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Fancy Mail Splitting): Mention `delete' near the
explanation of `junk'.
make a date format is `message-make-date', which should produce a
time zone.
-2001-09-04 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-09-04 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Optional Backend Functions): More detail about the
DATE arg for nnchoke-request-newgroups. Reported by Paul Jarc.
-2001-09-01 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-09-01 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Hooking New Backends Into Gnus): Say where to put the
call for gnus-declare-backend. Add an index entry for
* gnus.texi (Score Variables): Fix.
-2001-08-20 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-20 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Delayed Articles): New section. Documents
gnus-delay.el.
(Positioning Point): New.
(Tabulation): New.
-2001-08-19 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-19 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Getting Started Reading Mail): Use (nnml "") rather
than (nnml "private") as the example server specification. This
Configuration'. After all, we're not talking about Microsoft.
Suggested by Barry Fishman.
-2001-08-11 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-11 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Summary Mail Commands): Remove duplicate explanation
of `S W'. Reported by Norbert Koch.
* gnus.texi (Mail Backend Variables): Fix.
-2001-08-04 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-04 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Summary Buffer Lines): Mention `gnus-goto-colon'.
-2001-08-03 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-08-03 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Backend Interface): Explain about article numbers.
Suggested by Paul Jarc.
* gnus.texi (Fancy Mail Splitting): New variable
nnmail-split-fancy-with-parent-ignore-groups
-2001-07-24 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-07-24 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Duplicates): Make split method regexp more specific,
in case other `Gnus-Warning' headers are added in the future.
* gnus.texi (Searching for Articles): Raw articles.
-2001-07-16 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-07-16 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* message.texi (Insertion): Refer to gnus-cite-attribution-suffix.
* gnus.texi (MIME Commands): Add.
-2001-06-24 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-06-24 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Summary Score Commands): Say that some commands
create ADAPT files.
-2001-06-23 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-06-23 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Duplicates): Contents of Gnus-Warning header have
changed. Reported by Peter J Acklam.
* gnus-faq.texi (Frequently Asked Questions): Fix URL.
-2001-06-17 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-06-17 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Group Line Specification): Explain why %t is only an
estimate.
* gnus.texi: Remove a few The's.
(RSS): New.
-2001-04-26 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-04-26 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Unread Articles): Say that dormants are similar to
ticked.
-2001-04-13 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-04-13 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Sorting Groups): Note `C-k' and `C-y' for manually
moving groups around.
* message.texi (Security): Typos.
-2001-03-15 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-03-15 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Hiding Headers): Typos. Reported by Sriram Karra
<karra@cs.utah.edu>.
-2001-03-11 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-03-11 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* message.texi (Message Headers): Update doc for
`message-generate-headers-first'.
* infohack.el (infohack): Set max-lisp-eval-depth to 600+.
-2001-03-03 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-03-03 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Posting Styles): Posting styles have (NAME VALUE),
not (NAME . VALUE).
* gnus.texi (Optional Backend Functions): Fix case.
-2001-02-14 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-02-14 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Unread Articles): Say that Gnus itself never expires
ticked articles. Suggested by M D Greenhow
* gnus.texi (Pterodactyl Gnus): Added.
(Newest Features): Removed. Suggested by RMS.
-2001-02-08 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-02-08 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Group Parameters): Mention `G c' in addition to `G p'.
-2001-02-07 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-02-07 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (To From Newsgroups): Make it clear where to put the
sample code. Suggested by Dan Jacobson.
* gnus.texi (Mail Source Specifiers, IMAP, Agent and IMAP):
Improve IMAP discussion.
-2001-02-07 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-02-07 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* message.texi (Message Headers): `message-generate-headers-first'.
* message.texi (Security): Requires OpenSSL 0.9.6+.
-2001-01-13 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-01-13 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Mail): Move explanation of
`message-send-mail-partially-limit' to message.texi
* gnus.texi (myself): Quote .
-2001-01-05 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-01-05 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Choosing Commands): Add xref for redisplaying the
group. Suggestion from Galen Boyer <galenboyer@yahoo.com>.
* texi2latex.el (latexi-translate-file): Ignore anchor.
-2001-01-04 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-01-04 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Article Washing): Refer to `Customizing Articles' for
permanent changes. Suggested by Russell Marks (russel dot marks
at ntlworld dot com).
-2001-01-03 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2001-01-03 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Article Washing): Mention `C-u g' as a sort of
anti-washing.
* texi2latex.el (latexi-translate-file): Understand uref.
-2000-12-30 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-12-30 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Selecting a Group): Explain in more detail, what a
prefix arg means for SPC. Refer people to M-g command from
* gnus.texi (Adaptive Scoring): Use setq by Thomas Seck
<tmseck@web.de>.
-2000-12-21 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-12-21 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Article Washing): Doc addition by Paul Stevenson
<p.stevenson@surrey.ac.uk>.
* gnus.texi (Archived Messages): Add.
-2000-11-20 Jochen K\e,A|\e(Bpper <jochen@pc1.uni-duesseldorf.de>
+2000-11-20 Jochen Küpper <jochen@pc1.uni-duesseldorf.de>
* gnus.texi (Security): Fix typo.
* emacs-mime.texi (MML Definition): Add sign, encrypt, keyfile and
certfile.
-2000-11-07 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-11-07 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Mail Group Commands): `gnus-move-split-methods' uses
group names as target, where `gnus-split-methods' uses file
* gnus.texi: Doc fix.
-2000-11-01 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-11-01 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Fancy Mail Splitting): Explain
`nnmail-split-fancy-with-parent'.
* gnus.texi (NNTP): Explain `port'.
-2000-10-30 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-10-30 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Archived Messages): Explain what happens when group
names mentioned in `gnus-message-archive-group' contain a select
method.
-2000-10-28 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-10-28 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Group Levels): Explain meaning of subscribed,
unsubscribed, zombie, killed groups.
-2000-10-26 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-10-26 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Gnus Development): nnmail-delete-incoming -->
mail-source-delete-incoming. Suggested by Karl Kleinpaste
* gnus.texi (IMAP): Add.
-2000-10-05 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-10-05 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Windows Configuration): add examples; first example
- suggested by Stein A. Str\e,Ax\e(Bmme <stromme@mi.uib.no>. (The actual
+ suggested by Stein A. Strømme <stromme@mi.uib.no>. (The actual
Lisp code is also from him.)
2000-10-07 Dave Love <fx@gnu.org>
* gnus.texi (IMAP): Add examples.
-2000-09-19 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2000-09-19 Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (IMAP): Add pointer to description of ~/.authinfo file
format.
Boston, MA 02110-1301, USA.
;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
;; fill-column: 79
;; add-log-time-zone-rule: t
;; End:
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
See also @code{nntp-via-rlogin-command-switches}. Here's an example for
an indirect connection:
+
@lisp
(setq gnus-select-method
'(nntp "indirect"
(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
(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:
@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
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
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
@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
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