changeset 76267:96573486524e

Merge from gnus--rel--5.10 Patches applied: * gnus--rel--5.10 (patch 203-205) - Merge from emacs--devo--0 - Update from CVS 2007-02-28 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/message.el (message-make-in-reply-to): Quote name containing non-ASCII characters. It will make the RFC2047 encoder cause an error if there are special characters. Reported by NAKAJI Hiroyuki <nakaji@kankyo-u.ac.jp>. 2007-02-27 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/nntp.el (nntp-never-echoes-commands) (nntp-open-connection-functions-never-echo-commands): New variables. (nntp-send-command): Use them. 2007-02-27 Katsumi Yamaoka <yamaoka@jpl.org> * man/gnus.texi (NNTP): Mention nntp-never-echoes-commands and nntp-open-connection-functions-never-echo-commands. Revision: emacs@sv.gnu.org/emacs--devo--0--patch-658
author Miles Bader <miles@gnu.org>
date Thu, 01 Mar 2007 23:41:53 +0000
parents ae4e22c0380f
children 2fb154fe6599
files lisp/gnus/ChangeLog lisp/gnus/message.el lisp/gnus/nntp.el man/ChangeLog man/gnus.texi
diffstat 5 files changed, 85 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Thu Mar 01 23:19:31 2007 +0000
+++ b/lisp/gnus/ChangeLog	Thu Mar 01 23:41:53 2007 +0000
@@ -1,3 +1,16 @@
+2007-02-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-make-in-reply-to): Quote name containing
+	non-ASCII characters.  It will make the RFC2047 encoder cause an error
+	if there are special characters.  Reported by NAKAJI Hiroyuki
+	<nakaji@kankyo-u.ac.jp>.
+
+2007-02-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-never-echoes-commands)
+	(nntp-open-connection-functions-never-echo-commands): New variables.
+	(nntp-send-command): Use them.
+
 2007-02-15  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
 
 	* nnweb.el (nnweb-google-parse-1): Fix date parsing to also match on
--- a/lisp/gnus/message.el	Thu Mar 01 23:19:31 2007 +0000
+++ b/lisp/gnus/message.el	Thu Mar 01 23:41:53 2007 +0000
@@ -4864,13 +4864,32 @@
 	  (msg-id (mail-header-message-id message-reply-headers)))
       (when from
 	(let ((name (mail-extract-address-components from)))
-	  (concat msg-id (if msg-id " (")
-		  (or (car name)
-		      (nth 1 name))
-		  "'s message of \""
-		  (if (or (not date) (string= date ""))
-		      "(unknown date)" date)
-		  "\"" (if msg-id ")")))))))
+	  (concat
+	   msg-id (if msg-id " (")
+	   (if (car name)
+	       (if (string-match "[^\000-\177]" (car name))
+		   ;; 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) "\"")))
+		 (car name))
+	     (nth 1 name))
+	   "'s message of \""
+	   (if (or (not date) (string= date ""))
+	       "(unknown date)" date)
+	   "\"" (if msg-id ")")))))))
 
 (defun message-make-distribution ()
   "Make a Distribution header."
--- a/lisp/gnus/nntp.el	Thu Mar 01 23:19:31 2007 +0000
+++ b/lisp/gnus/nntp.el	Thu Mar 01 23:41:53 2007 +0000
@@ -88,6 +88,21 @@
 - `nntp-open-via-rlogin-and-telnet',
 - `nntp-open-via-telnet-and-telnet'.")
 
+(defvoo nntp-never-echoes-commands nil
+  "*Non-nil means the nntp server never echoes commands.
+It is reported that some nntps server doesn't echo commands.  So, you
+may want to set this to non-nil in the method for such a server setting
+`nntp-open-connection-function' to `nntp-open-ssl-stream' for example.
+Note that the `nntp-open-connection-functions-never-echo-commands'
+variable overrides the nil value of this variable.")
+
+(defvoo nntp-open-connection-functions-never-echo-commands
+    '(nntp-open-network-stream)
+  "*List of functions that never echo commands.
+Add or set a function which you set to `nntp-open-connection-function'
+to this list if it does not echo commands.  Note that a non-nil value
+of the `nntp-never-echoes-commands' variable overrides this variable.")
+
 (defvoo nntp-pre-command nil
   "*Pre-command to use with the various nntp-open-via-* methods.
 This is where you would put \"runsocks\" or stuff like that.")
@@ -450,11 +465,15 @@
 				nntp-server-buffer
 				wait-for nnheader-callback-function)
 	  ;; If nothing to wait for, still remove possibly echo'ed commands.
-	  ;; We don't have echos if nntp-open-connection-function
-	  ;; is `nntp-open-network-stream', so we skip this in that case.
+	  ;; We don't have echoes if `nntp-never-echoes-commands' is non-nil
+	  ;; or the value of `nntp-open-connection-function' is in
+	  ;; `nntp-open-connection-functions-never-echo-commands', so we
+	  ;; skip this in that cases.
 	  (unless (or wait-for
-		      (equal nntp-open-connection-function
-			     'nntp-open-network-stream))
+		      nntp-never-echoes-commands
+		      (memq
+		       nntp-open-connection-function
+		       nntp-open-connection-functions-never-echo-commands))
 	    (nntp-accept-response)
 	    (save-excursion
 	      (set-buffer buffer)
--- a/man/ChangeLog	Thu Mar 01 23:19:31 2007 +0000
+++ b/man/ChangeLog	Thu Mar 01 23:41:53 2007 +0000
@@ -1,3 +1,8 @@
+2007-02-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (NNTP): Mention nntp-never-echoes-commands and
+	nntp-open-connection-functions-never-echo-commands.
+
 2007-02-28  Thien-Thi Nguyen  <ttn@gnu.org>
 
 	* rmail.texi (Movemail): Add internal ref.
--- a/man/gnus.texi	Thu Mar 01 23:19:31 2007 +0000
+++ b/man/gnus.texi	Thu Mar 01 23:41:53 2007 +0000
@@ -12942,6 +12942,24 @@
 two categories: direct connection functions (four pre-made), and
 indirect ones (two pre-made).
 
+@item nntp-never-echoes-commands
+@vindex nntp-never-echoes-commands
+Non-@code{nil} means the nntp server never echoes commands.  It is
+reported that some nntps server doesn't echo commands.  So, you may want
+to set this to non-@code{nil} in the method for such a server setting
+@code{nntp-open-connection-function} to @code{nntp-open-ssl-stream} for
+example.  The default value is @code{nil}.  Note that the
+@code{nntp-open-connection-functions-never-echo-commands} variable
+overrides the @code{nil} value of this variable.
+
+@item nntp-open-connection-functions-never-echo-commands
+@vindex nntp-open-connection-functions-never-echo-commands
+List of functions that never echo commands.  Add or set a function which
+you set to @code{nntp-open-connection-function} to this list if it does
+not echo commands.  Note that a non-@code{nil} value of the
+@code{nntp-never-echoes-commands} variable overrides this variable.  The
+default value is @code{(nntp-open-network-stream)}.
+
 @item nntp-prepare-post-hook
 @vindex nntp-prepare-post-hook
 A hook run just before posting an article.  If there is no