changeset 57784:55829134ac17

Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-650 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-61 - miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-63 Update from CVS 2004-10-29 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/mm-util.el (mm-coding-system-priorities): Prefer iso-8859-1 than iso-2022-jp even in the Japanese language environment. Suggested by Jason Rumney <jasonr@gnu.org>. 2004-10-28 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Allow users to use the same characters as the dummy marks; make it free from getting affected by the language environment. (gnus-summary-read-group-1): Update mark positions only when the format spec is updated. * lisp/gnus/gnus-spec.el (gnus-update-format-specifications): Return a list of updated types. 2004-10-26 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/nnspool.el (nnspool-spool-directory): Use news-path if the news-directory variable is not bound. * lisp/gnus/gnus-group.el (gnus-group-line-format-alist): Convert the value of gnus-tmp-news-method into string if it may be passed to gnus-correct-length which takes only a string argument.
author Miles Bader <miles@gnu.org>
date Fri, 29 Oct 2004 02:23:24 +0000
parents 4cb8cebc3255
children 2a55e2b38c8d
files lisp/gnus/ChangeLog lisp/gnus/gnus-group.el lisp/gnus/gnus-spec.el lisp/gnus/gnus-sum.el lisp/gnus/mm-util.el lisp/gnus/nnspool.el
diffstat 6 files changed, 86 insertions(+), 38 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Fri Oct 29 00:00:43 2004 +0000
+++ b/lisp/gnus/ChangeLog	Fri Oct 29 02:23:24 2004 +0000
@@ -1,3 +1,29 @@
+2004-10-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-coding-system-priorities): Prefer iso-8859-1 than
+	iso-2022-jp even in the Japanese language environment.  Suggested
+	by Jason Rumney <jasonr@gnu.org>.
+
+2004-10-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-update-summary-mark-positions): Allow users to
+	use the same characters as the dummy marks; make it free from
+	getting affected by the language environment.
+	(gnus-summary-read-group-1): Update mark positions only when the
+	format spec is updated.
+
+	* gnus-spec.el (gnus-update-format-specifications): Return a list
+	of updated types.
+
+2004-10-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnspool.el (nnspool-spool-directory): Use news-path if the
+	news-directory variable is not bound.
+
+	* gnus-group.el (gnus-group-line-format-alist): Convert the value
+	of gnus-tmp-news-method into string if it may be passed to
+	gnus-correct-length which takes only a string argument.
+
 2004-10-25  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* html2text.el (html2text-buffer-head): Removed.  Use `goto-char'
--- a/lisp/gnus/gnus-group.el	Fri Oct 29 00:00:43 2004 +0000
+++ b/lisp/gnus/gnus-group.el	Fri Oct 29 02:23:24 2004 +0000
@@ -491,7 +491,10 @@
     (?O gnus-tmp-moderated-string ?s)
     (?p gnus-tmp-process-marked ?c)
     (?s gnus-tmp-news-server ?s)
-    (?n gnus-tmp-news-method ?s)
+    (?n ,(if (featurep 'xemacs)
+	     '(symbol-name gnus-tmp-news-method)
+	   'gnus-tmp-news-method)
+	?s)
     (?P gnus-group-indentation ?s)
     (?E gnus-tmp-group-icon ?s)
     (?B gnus-tmp-summary-live ?c)
--- a/lisp/gnus/gnus-spec.el	Fri Oct 29 00:00:43 2004 +0000
+++ b/lisp/gnus/gnus-spec.el	Fri Oct 29 02:23:24 2004 +0000
@@ -183,7 +183,8 @@
     (insert (gnus-pp-to-string spec))))
 
 (defun gnus-update-format-specifications (&optional force &rest types)
-  "Update all (necessary) format specifications."
+  "Update all (necessary) format specifications.
+Return a list of updated types."
   ;; Make the indentation array.
   ;; See whether all the stored info needs to be flushed.
   (when (or force
@@ -195,13 +196,12 @@
     (setq gnus-format-specs nil))
 
   ;; Go through all the formats and see whether they need updating.
-  (let (new-format entry type val)
+  (let (new-format entry type val updated)
     (while (setq type (pop types))
       ;; Jump to the proper buffer to find out the value of the
       ;; variable, if possible.  (It may be buffer-local.)
       (save-excursion
-	(let ((buffer (intern (format "gnus-%s-buffer" type)))
-	      val)
+	(let ((buffer (intern (format "gnus-%s-buffer" type))))
 	  (when (and (boundp buffer)
 		     (setq val (symbol-value buffer))
 		     (gnus-buffer-exists-p val))
@@ -231,10 +231,12 @@
 		(setcar (cdr entry) val)
 		(setcar entry new-format))
 	    (push (list type new-format val) gnus-format-specs))
-	  (set (intern (format "gnus-%s-line-format-spec" type)) val)))))
+	  (set (intern (format "gnus-%s-line-format-spec" type)) val)
+	  (push type updated))))
 
-  (unless (assq 'version gnus-format-specs)
-    (push (cons 'version emacs-version) gnus-format-specs)))
+    (unless (assq 'version gnus-format-specs)
+      (push (cons 'version emacs-version) gnus-format-specs))
+    updated))
 
 (defvar gnus-mouse-face-0 'highlight)
 (defvar gnus-mouse-face-1 'highlight)
--- a/lisp/gnus/gnus-sum.el	Fri Oct 29 00:00:43 2004 +0000
+++ b/lisp/gnus/gnus-sum.el	Fri Oct 29 02:23:24 2004 +0000
@@ -3225,43 +3225,54 @@
   (save-excursion
     (when (gnus-buffer-exists-p gnus-summary-buffer)
       (set-buffer gnus-summary-buffer))
-    (let ((gnus-replied-mark 129)
-	  (gnus-score-below-mark 130)
-	  (gnus-score-over-mark 130)
-	  (gnus-undownloaded-mark 131)
-	  (spec gnus-summary-line-format-spec)
-	  gnus-visual pos)
+    (let ((spec gnus-summary-line-format-spec)
+	  pos)
       (save-excursion
 	(gnus-set-work-buffer)
-	(let ((gnus-summary-line-format-spec spec)
+	(let ((gnus-tmp-unread ?Z)
+	      (gnus-replied-mark ?Z)
+	      (gnus-score-below-mark ?Z)
+	      (gnus-score-over-mark ?Z)
+	      (gnus-undownloaded-mark ?Z)
+	      (gnus-summary-line-format-spec spec)
 	      (gnus-newsgroup-downloadable '(0))
-	      marks)
-	  (insert ?\200 "\200" ?\201 "\201" ?\202 "\202" ?\203 "\203")
-	  (while (not (bobp))
-	    (push (buffer-substring (1- (point)) (point)) marks)
-	    (backward-char))
+	      (header [0 "" "" "05 Apr 2001 23:33:09 +0400" "" "" 0 0 "" nil])
+	      case-fold-search ignores)
+	  ;; Here, all marks are bound to Z.
+	  (gnus-summary-insert-line header
+				    0 nil t gnus-tmp-unread t nil "" nil 1)
+	  (goto-char (point-min))
+	  ;; Memorize the positions of the same characters as dummy marks.
+	  (while (re-search-forward "[A-D]" nil t)
+	    (push (point) ignores))
 	  (erase-buffer)
-	  (gnus-summary-insert-line
-	   [0 "" "" "05 Apr 2001 23:33:09 +0400" "" "" 0 0 "" nil]
-	   0 nil t 128 t nil "" nil 1)
+	  ;; We use A-D as dummy marks in order to know column positions
+	  ;; where marks should be inserted.
+	  (setq gnus-tmp-unread ?A
+		gnus-replied-mark ?B
+		gnus-score-below-mark ?C
+		gnus-score-over-mark ?C
+		gnus-undownloaded-mark ?D)
+	  (gnus-summary-insert-line header
+				    0 nil t gnus-tmp-unread t nil "" nil 1)
+	  ;; Ignore characters which aren't dummy marks.
+	  (dolist (p ignores)
+	    (delete-region (goto-char (1- p)) p)
+	    (insert ?Z))
 	  (goto-char (point-min))
 	  (setq pos (list (cons 'unread
-				(and (or (search-forward (nth 0 marks) nil t)
-					 (search-forward (nth 1 marks) nil t))
+				(and (search-forward "A" nil t)
 				     (- (point) (point-min) 1)))))
 	  (goto-char (point-min))
-	  (push (cons 'replied (and (or (search-forward (nth 2 marks) nil t)
-					(search-forward (nth 3 marks) nil t))
+	  (push (cons 'replied (and (search-forward "B" nil t)
 				    (- (point) (point-min) 1)))
 		pos)
 	  (goto-char (point-min))
-	  (push (cons 'score (and (or (search-forward (nth 4 marks) nil t)
-				      (search-forward (nth 5 marks) nil t))
+	  (push (cons 'score (and (search-forward "C" nil t)
 				  (- (point) (point-min) 1)))
 		pos)
 	  (goto-char (point-min))
-	  (push (cons 'download (and (or (search-forward (nth 6 marks) nil t)
-					 (search-forward (nth 7 marks) nil t))
+	  (push (cons 'download (and (search-forward "D" nil t)
 				     (- (point) (point-min) 1)))
 		pos)))
       (setq gnus-summary-mark-positions pos))))
@@ -3559,9 +3570,11 @@
 	     (gnus-active gnus-newsgroup-name)))
       ;; You can change the summary buffer in some way with this hook.
       (gnus-run-hooks 'gnus-select-group-hook)
-      (gnus-update-format-specifications
-       nil 'summary 'summary-mode 'summary-dummy)
-      (gnus-update-summary-mark-positions)
+      (when (memq 'summary (gnus-update-format-specifications
+			    nil 'summary 'summary-mode 'summary-dummy))
+	;; The format specification for the summary line was updated,
+	;; so we need to update the mark positions as well.
+	(gnus-update-summary-mark-positions))
       ;; Do score processing.
       (when gnus-use-scoring
 	(gnus-possibly-score-headers))
--- a/lisp/gnus/mm-util.el	Fri Oct 29 00:00:43 2004 +0000
+++ b/lisp/gnus/mm-util.el	Fri Oct 29 02:23:24 2004 +0000
@@ -302,9 +302,10 @@
   (if (boundp 'current-language-environment)
       (let ((lang (symbol-value 'current-language-environment)))
 	(cond ((string= lang "Japanese")
-	       ;; Japanese users may prefer iso-2022-jp to shift-jis.
-	       '(iso-2022-jp iso-2022-jp-2 japanese-shift-jis
-			     iso-latin-1 utf-8)))))
+	       ;; Japanese users prefer iso-2022-jp to euc-japan or
+	       ;; shift_jis, however iso-8859-1 should be used when
+	       ;; there are only ASCII text and Latin-1 characters.
+	       '(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8)))))
   "Preferred coding systems for encoding outgoing messages.
 
 More than one suitable coding system may be found for some text.
--- a/lisp/gnus/nnspool.el	Fri Oct 29 00:00:43 2004 +0000
+++ b/lisp/gnus/nnspool.el	Fri Oct 29 02:23:24 2004 +0000
@@ -44,7 +44,10 @@
   "Switches for nnspool-request-post to pass to `inews' for posting news.
 If you are using Cnews, you probably should set this variable to nil.")
 
-(defvoo nnspool-spool-directory (file-name-as-directory news-directory)
+(defvoo nnspool-spool-directory
+    (file-name-as-directory (if (boundp 'news-directory)
+				(symbol-value 'news-directory)
+			      news-path))
   "Local news spool directory.")
 
 (defvoo nnspool-nov-directory (concat nnspool-spool-directory "over.view/")