ANSI sequences are used in some Chinese hierarchies for highlighting
articles (`gnus-article-treat-ansi-sequences').
+** International host names (IDNA) can now be decoded inside article
+bodies using `W i' (`gnus-summary-idna-message').
+
** Gnus includes an Emacs Lisp SASL library.
This provide a clean API to SASL mechanisms from within Emacs. The
+2005-01-15 Simon Josefsson <jas@extundo.com>
+
+ * message.el (message-idna-to-ascii-rhs): Decode Reply-To too.
+ Suggested by Raymond Scholz <ray-2005@zonix.de>.
+
+ * gnus-sum.el (gnus-summary-wash-map): Bind "W i" to
+ gnus-summary-idna-message.
+ (gnus-summary-make-menu-bar): Add De-IDNA menu entry.
+ (gnus-summary-idna-message): New function.
+
2005-01-13 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-msg.el (gnus-confirm-mail-reply-to-news): Change default to
-;;; gnus-sum.el --- summary mode commands for Semi-gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;;; gnus-sum.el --- summary mode commands for gnus
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
"m" gnus-summary-toggle-mime
"a" gnus-article-strip-headers-in-body ;; mnemonic: wash archive
"p" gnus-article-verify-x-pgp-sig
- "d" gnus-article-treat-dumbquotes)
+ "d" gnus-article-treat-dumbquotes
+ "i" gnus-summary-idna-message)
(gnus-define-keys (gnus-summary-wash-deuglify-map "Y" gnus-summary-wash-map)
;; mnemonic: deuglif*Y*
["Rot 13" gnus-summary-caesar-message
,@(if (featurep 'xemacs) '(t)
'(:help "\"Caesar rotate\" article by 13"))]
+ ["De-IDNA" gnus-summary-idna-message t]
["Morse decode" gnus-summary-morse-message t]
["Unix pipe..." gnus-summary-pipe-message t]
["Add buttons" gnus-article-add-buttons t]
(message-caesar-buffer-body arg)
(set-window-start (get-buffer-window (current-buffer)) start))))))
+(defun gnus-summary-idna-message (&optional arg)
+ "Decode IDNA encoded domain names in the current articles.
+IDNA encoded domain names looks like `xn--bar'. If a string
+remain unencoded after running this function, it is likely an
+invalid IDNA string (`xn--bar' is invalid)."
+ (interactive "P")
+ (gnus-summary-select-article)
+ (let ((mail-header-separator ""))
+ (gnus-eval-in-buffer-window gnus-article-buffer
+ (save-restriction
+ (widen)
+ (let ((start (window-start))
+ buffer-read-only)
+ (while (re-search-forward "\\(xn--[-0-9a-z]+\\)" nil t)
+ (replace-match (idna-to-unicode (match-string 1))))
+ (set-window-start (get-buffer-window (current-buffer)) start))))))
+
(autoload 'unmorse-region "morse"
"Convert morse coded text in region to ordinary ASCII text."
t)
;;; message.el --- composing mail and news messages
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
(message-narrow-to-head)
(message-idna-to-ascii-rhs-1 "From")
(message-idna-to-ascii-rhs-1 "To")
+ (message-idna-to-ascii-rhs-1 "Reply-To")
(message-idna-to-ascii-rhs-1 "Cc")))))
(defun message-generate-headers (headers)
+2005-01-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Topic Commands): Fix next/previous.
+
+2005-01-15 Simon Josefsson <jas@extundo.com>
+
+ * gnus.texi (Article Washing): Mention `W i'.
+
+ * gnus-news.texi: Mention De-IDNA washing.
+
2005-01-06 Katsumi Yamaoka <yamaoka@jpl.org>
* message.texi (Reply): `message-reply-to-function' should return
@copying
Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004
+2002, 2003, 2004, 2005
Free Software Foundation, Inc.
@quotation
@findex gnus-summary-morse-message
\e$B5-;v%P%C%U%!$r%b!<%k%9I|9f$7$^$9\e(B (@code{gnus-summary-morse-message})\e$B!#\e(B
+@item W i
+@kindex W i (\e$B35N,\e(B)
+@findex gnus-summary-idna-message
+\e$B8=:_$N5-;v$K$"$k\e(B IDNA \e$B%(%s%3!<%I$5$l$?%I%a%$%sL>$r%G%3!<%I$7$^$9!#\e(B
+IDNA \e$B%(%s%3!<%I$5$l$?%I%a%$%sL>$O\e(B @samp{xn--bar} \e$B$N$h$&$K8+$($^$9!#$3$l\e(B
+\e$B$r<B9T$7$?8e$GJ8;zNs$,%G%3!<%I$5$l$J$$$^$^$@$C$?$i!"$*$=$i$/$=$l$OIT@5\e(B
+\e$B$J\e(B IDNA \e$BJ8;zNs$G$7$g$&\e(B (@samp{xn--bar} \e$B$OIT@5$G$9\e(B)\e$B!#\e(B
+
@item W t
@item t
@kindex W t (\e$B35N,\e(B)
@acronym{ANSI} sequences are used in some Chinese hierarchies for
highlighting articles (@code{gnus-article-treat-ansi-sequences}).
+@item International host names (@acronym{IDNA}) can now be decoded
+inside article bodies using @kbd{W i}
+(@code{gnus-summary-idna-message}).
+
@item Gnus includes an Emacs Lisp @acronym{SASL} library.
This provide a clean @acronym{API} to @acronym{SASL} mechanisms from
@copying
Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004
+2002, 2003, 2004, 2005
Free Software Foundation, Inc.
@quotation
@item T M-p
@kindex T M-p (Topic)
@findex gnus-topic-goto-previous-topic
-Go to the next topic (@code{gnus-topic-goto-previous-topic}).
+Go to the previous topic (@code{gnus-topic-goto-previous-topic}).
@item G p
@kindex G p (Topic)
@findex gnus-summary-morse-message
Morse decode the article buffer (@code{gnus-summary-morse-message}).
+@item W i
+@kindex W i (Summary)
+@findex gnus-summary-idna-message
+Decode IDNA encoded domain names in the current articles. IDNA
+encoded domain names looks like @samp{xn--bar}. If a string remain
+unencoded after running invoking this, it is likely an invalid IDNA
+string (@samp{xn--bar} is invalid).
+
@item W t
@item t
@kindex W t (Summary)