changeset 112045:52100bac91db

Merge changes made in Gnus trunk. mm-view.el (mml-smime): Require. mm-view.el (mm-view-pkcs7-decrypt): If mml-smime-use is set to 'epg, use EPG to decrypt S/MIME messages instead of openssl. nnimap.el (nnimap-request-group): Avoid double SELECT on `M-g'. gnus-group.el (gnus-group-kill-group): Don't try to update the group status is the group clearly is unreachable. auth-source.el (auth-source-create): Add the optional second parameter to `local-variable-p' to be compatible with XEmacs. nnml.el (nnml-request-article): Allow requesting by Message-ID to work when using a compressed nnml folder. gnus-sum.el (gnus-select-newsgroup): Don't propagate marks to backends after sanitising on entry, because this never makes sense: If the articles have gone missing, then the data no longer exists on the backend, and if they haven't, then Gnus is wrong, and shouldn't overwrite anything anyway. shr.el (shr-insert-document): Bind shr-width dynamically to window-width if it's nil. shr.el (shr-width, shr-insert-document): Allow nil as shr-width value with the meaning of using the full emacs window width for rendering.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sun, 02 Jan 2011 11:23:02 +0000
parents 38481fb0a538
children 40af77a50adc a71f37cebb55
files lisp/gnus/ChangeLog lisp/gnus/auth-source.el lisp/gnus/gnus-group.el lisp/gnus/gnus-sum.el lisp/gnus/mm-view.el lisp/gnus/nnimap.el lisp/gnus/nnml.el lisp/gnus/shr.el
diffstat 8 files changed, 87 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Sat Jan 01 19:35:15 2011 -0500
+++ b/lisp/gnus/ChangeLog	Sun Jan 02 11:23:02 2011 +0000
@@ -1,3 +1,43 @@
+2011-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mm-view.el (mml-smime): Require.
+
+2010-12-20  David Engster  <deng@eml.cc>
+
+	* mm-view.el (mm-view-pkcs7-decrypt): If mml-smime-use is set to 'epg,
+	use EPG to decrypt S/MIME messages instead of openssl.
+
+2011-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnimap.el (nnimap-request-group): Avoid double SELECT on `M-g'.
+
+	* gnus-group.el (gnus-group-kill-group): Don't try to update the group
+	status is the group clearly is unreachable.
+
+	* auth-source.el (auth-source-create): Add the optional second
+	parameter to `local-variable-p' to be compatible with XEmacs.
+
+2011-01-02  Wang Diancheng  <dcwang@kingbase.com.cn>  (tiny change)
+
+	* nnml.el (nnml-request-article): Allow requesting by Message-ID to
+	work when using a compressed nnml folder.
+
+2011-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-select-newsgroup): Don't propagate marks to
+	backends after sanitising on entry, because this never makes sense:
+	If the articles have gone missing, then the data no longer exists on
+	the backend, and if they haven't, then Gnus is wrong, and shouldn't
+	overwrite anything anyway.
+
+	* shr.el (shr-insert-document): Bind shr-width dynamically to
+	window-width if it's nil.
+
+2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
+
+	* shr.el (shr-width, shr-insert-document): Allow nil as shr-width value
+	with the meaning of using the full emacs window width for rendering.
+
 2010-12-27  Daiki Ueno  <ueno@unixuser.org>
 
 	* mml2015.el (mml2015-epg-sign, mml2015-epg-encrypt): Take care the
--- a/lisp/gnus/auth-source.el	Sat Jan 01 19:35:15 2011 -0500
+++ b/lisp/gnus/auth-source.el	Sun Jan 02 11:23:02 2011 +0000
@@ -1,6 +1,6 @@
 ;;; auth-source.el --- authentication sources for Gnus and Emacs
 
-;; Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 
 ;; Author: Ted Zlatanov <tzz@lifelogs.com>
 ;; Keywords: news
@@ -370,7 +370,7 @@
 	    ;; making `epa-file-encrypt-to' local to this buffer lets
 	    ;; epa-file skip the key selection query (see the
 	    ;; `local-variable-p' check in `epa-file-write-region').
-	    (unless (local-variable-p 'epa-file-encrypt-to)
+	    (unless (local-variable-p 'epa-file-encrypt-to (current-buffer))
 	      (make-local-variable 'epa-file-encrypt-to))
 	    (if (listp auth-source-gpg-encrypt-to)
 		(setq epa-file-encrypt-to auth-source-gpg-encrypt-to)))
--- a/lisp/gnus/gnus-group.el	Sat Jan 01 19:35:15 2011 -0500
+++ b/lisp/gnus/gnus-group.el	Sun Jan 02 11:23:02 2011 +0000
@@ -1,7 +1,8 @@
 ;;; gnus-group.el --- group mode commands for Gnus
 
 ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;;   2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+;;   Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -3790,7 +3791,8 @@
 		  gnus-list-of-killed-groups))
 	  (gnus-group-change-level
 	   (if entry entry group) gnus-level-killed (if entry nil level))
-	  (gnus-request-update-group-status group 'unsubscribe)
+	  (when (numberp (gnus-group-unread group))
+	    (gnus-request-update-group-status group 'unsubscribe))
 	  (message "Killed group %s" (gnus-group-decoded-name group)))
       ;; If there are lots and lots of groups to be killed, we use
       ;; this thing instead.
@@ -3814,7 +3816,8 @@
 	;; There may be more than one instance displayed.
 	(while (gnus-group-goto-group group)
 	  (gnus-delete-line))
-	(gnus-request-update-group-status group 'unsubscribe))
+	(when (numberp (gnus-group-unread group))
+	  (gnus-request-update-group-status group 'unsubscribe)))
       (gnus-make-hashtable-from-newsrc-alist))
 
     (gnus-group-position-point)
--- a/lisp/gnus/gnus-sum.el	Sat Jan 01 19:35:15 2011 -0500
+++ b/lisp/gnus/gnus-sum.el	Sun Jan 02 11:23:02 2011 +0000
@@ -1,7 +1,7 @@
 ;;; gnus-sum.el --- summary mode commands for Gnus
 
 ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -5603,7 +5603,7 @@
 
     (setq gnus-newsgroup-processable nil)
 
-    (gnus-update-read-articles group gnus-newsgroup-unreads)
+    (gnus-update-read-articles group gnus-newsgroup-unreads t)
 
     ;; Adjust and set lists of article marks.
     (when info
--- a/lisp/gnus/mm-view.el	Sat Jan 01 19:35:15 2011 -0500
+++ b/lisp/gnus/mm-view.el	Sun Jan 02 11:23:02 2011 +0000
@@ -1,7 +1,7 @@
 ;;; mm-view.el --- functions for viewing MIME objects
 
 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-;;   2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+;;   2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
@@ -32,6 +32,7 @@
 (require 'mm-bodies)
 (require 'mm-decode)
 (require 'smime)
+(require 'mml-smime)
 
 (autoload 'gnus-completing-read "gnus-util")
 (autoload 'gnus-window-inside-pixel-edges "gnus-ems")
@@ -683,17 +684,23 @@
 (defun mm-view-pkcs7-decrypt (handle &optional from)
   (insert-buffer-substring (mm-handle-buffer handle))
   (goto-char (point-min))
-  (insert "MIME-Version: 1.0\n")
-  (mm-insert-headers "application/pkcs7-mime" "base64" "smime.p7m")
-  (smime-decrypt-region
-   (point-min) (point-max)
-   (if (= (length smime-keys) 1)
-       (cadar smime-keys)
-     (smime-get-key-by-email
-      (gnus-completing-read
-       "Decipher using key"
-       smime-keys nil nil nil (car-safe (car-safe smime-keys)))))
-   from)
+  (if (eq mml-smime-use 'epg)
+      ;; Use EPG/gpgsm
+      (let ((part (base64-decode-string (buffer-string))))
+	(erase-buffer)
+	(insert (epg-decrypt-string (epg-make-context 'CMS) part)))
+    ;; Use openssl
+    (insert "MIME-Version: 1.0\n")
+    (mm-insert-headers "application/pkcs7-mime" "base64" "smime.p7m")
+    (smime-decrypt-region
+     (point-min) (point-max)
+     (if (= (length smime-keys) 1)
+	 (cadar smime-keys)
+       (smime-get-key-by-email
+	(gnus-completing-read
+	 "Decipher using key"
+	 smime-keys nil nil nil (car-safe (car-safe smime-keys)))))
+     from))
   (goto-char (point-min))
   (while (search-forward "\r\n" nil t)
     (replace-match "\n"))
--- a/lisp/gnus/nnimap.el	Sat Jan 01 19:35:15 2011 -0500
+++ b/lisp/gnus/nnimap.el	Sun Jan 02 11:23:02 2011 +0000
@@ -1,6 +1,6 @@
 ;;; nnimap.el --- IMAP interface for Gnus
 
-;; Copyright (C) 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;         Simon Josefsson <simon@josefsson.org>
@@ -639,7 +639,7 @@
   (let ((result (nnimap-possibly-change-group
 		 ;; Don't SELECT the group if we're going to select it
 		 ;; later, anyway.
-		 (if (and dont-check
+		 (if (and (not dont-check)
 			  (assoc group nnimap-current-infos))
 		     nil
 		   group)
--- a/lisp/gnus/nnml.el	Sat Jan 01 19:35:15 2011 -0500
+++ b/lisp/gnus/nnml.el	Sun Jan 02 11:23:02 2011 +0000
@@ -1,7 +1,8 @@
 ;;; nnml.el --- mail spool access for Gnus
 
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;;   2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;;   2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+;;   Foundation, Inc.
 
 ;; Authors: Didier Verna <didier@xemacs.org> (adding compaction)
 ;;	Simon Josefsson <simon@josefsson.org> (adding MARKS)
@@ -235,7 +236,11 @@
 			  (nnheader-article-to-file-alist
 			   (setq gpath (nnml-group-pathname (car group-num)
 							    nil server))))))
-	  (setq path (concat gpath (int-to-string (cdr group-num)))))
+	  (nnml-update-file-alist)
+	  (setq path (concat gpath (if nnml-use-compressed-files
+				       (cdr (assq (cdr group-num)
+						  nnml-article-file-alist))
+				     (number-to-string (cdr group-num))))))
       (setq path (nnml-article-to-file id)))
     (cond
      ((not path)
--- a/lisp/gnus/shr.el	Sat Jan 01 19:35:15 2011 -0500
+++ b/lisp/gnus/shr.el	Sun Jan 02 11:23:02 2011 +0000
@@ -1,6 +1,6 @@
 ;;; shr.el --- Simple HTML Renderer
 
-;; Copyright (C) 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: html
@@ -74,8 +74,12 @@
   :type 'character)
 
 (defcustom shr-width fill-column
-  "Frame width to use for rendering."
-  :type 'integer
+  "Frame width to use for rendering.
+May either be an integer specifying a fixed width in characters,
+or nil, meaning that the full width of the window should be
+used."
+  :type '(choice (integer :tag "Fixed width in characters")
+		 (const   :tag "Use the width of the window" nil))
   :group 'shr)
 
 (defvar shr-content-function nil
@@ -113,7 +117,8 @@
 (defun shr-insert-document (dom)
   (setq shr-content-cache nil)
   (let ((shr-state nil)
-	(shr-start nil))
+	(shr-start nil)
+	(shr-width (or shr-width (window-width))))
     (shr-descend (shr-transform-dom dom))))
 
 (defun shr-copy-url ()