changeset 87209:bc4976b7380e

Merge from gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-950
author Miles Bader <miles@gnu.org>
date Sun, 09 Dec 2007 22:14:32 +0000
parents 87e24ce4f26a
children a6f95b3d0102
files lisp/ChangeLog lisp/gnus/ChangeLog lisp/gnus/nnmaildir.el lisp/mail/hashcash.el lisp/net/imap.el lisp/pgg-parse.el lisp/pgg.el
diffstat 7 files changed, 57 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Dec 09 14:47:24 2007 +0000
+++ b/lisp/ChangeLog	Sun Dec 09 22:14:32 2007 +0000
@@ -1,3 +1,10 @@
+2007-12-09  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mail/hashcash.el, net/imap.el, pgg.el, pgg-parse.el
+	(declare-function): Add new no-op macro for backward compatibility.
+
+	* net/imap.el (imap-string-to-integer): New function.
+
 2007-12-09  David Kastrup  <dak@gnu.org>
 
 	* emacs-lisp/lisp-mnt.el (lm-verify): Make it work with
--- a/lisp/gnus/ChangeLog	Sun Dec 09 14:47:24 2007 +0000
+++ b/lisp/gnus/ChangeLog	Sun Dec 09 22:14:32 2007 +0000
@@ -31,6 +31,18 @@
 
 	* gnus-start.el (gnus-load): Rename local variable to avoid confusion.
 
+2007-12-06  Christian Plate  <cplate@web.de>  (tiny change)
+
+	* nnmaildir.el (nnmaildir-request-update-info): Improved performance.
+	Call gnus-add-to-range ranges only once with a prepared article-list.
+
+2007-12-06  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-list, nnmaildir-retrieve-groups,
+	nnmaildir-request-group, nnmaildir-retrieve-headers): Escape spaces in
+	group names with backslashes.  Reported by Tassilo Horn
+	<tassilo@member.fsf.org>.
+
 2007-12-06  D. Goel  <deego3@gmail.com>
 
 	* gnus-art.el (article-make-date-line):
--- a/lisp/gnus/nnmaildir.el	Sun Dec 09 14:47:24 2007 +0000
+++ b/lisp/gnus/nnmaildir.el	Sun Dec 09 22:14:32 2007 +0000
@@ -884,7 +884,9 @@
 			pgname (nnmaildir--pgname nnmaildir--cur-server pgname)
 			group (symbol-value group)
 			ro (nnmaildir--param pgname 'read-only))
-		  (insert (nnmaildir--grp-name group) " ")
+		  (insert (gnus-replace-in-string
+			   (nnmaildir--grp-name group) " " "\\ " t)
+			  " ")
                   (princ (nnmaildir--group-maxnum nnmaildir--cur-server group)
 			 nntp-server-buffer)
 		  (insert " ")
@@ -911,14 +913,17 @@
 	  (insert " ")
 	  (princ (nnmaildir--group-maxnum nnmaildir--cur-server group)
 		 nntp-server-buffer)
-	  (insert " " gname "\n")))))
+	  (insert " "
+		  (gnus-replace-in-string gname " " "\\ " t)
+		  "\n")))))
   'group)
 
 (defun nnmaildir-request-update-info (gname info &optional server)
   (let ((group (nnmaildir--prepare server gname))
 	pgname flist always-marks never-marks old-marks dotfile num dir
 	markdirs marks mark ranges markdir article read end new-marks ls
-	old-mmth new-mmth mtime mark-sym existing missing deactivate-mark)
+	old-mmth new-mmth mtime mark-sym existing missing deactivate-mark
+	article-list)
     (catch 'return
       (unless group
 	(setf (nnmaildir--srv-error nnmaildir--cur-server)
@@ -966,12 +971,13 @@
 	    (setq ranges (assq mark-sym old-marks))
 	    (if ranges (setq ranges (cdr ranges)))
 	    (throw 'got-ranges nil))
+	  (setq article-list nil)
 	  (dolist (prefix (funcall ls markdir nil "\\`[^.]" 'nosort))
 	    (setq article (nnmaildir--flist-art flist prefix))
 	    (if article
-		(setq ranges
-		      (gnus-add-to-range ranges
-					 `(,(nnmaildir--art-num article)))))))
+		(setq article-list
+		      (cons (nnmaildir--art-num article) article-list))))
+	  (setq ranges (gnus-add-to-range ranges (sort article-list '<))))
 	(if (eq mark-sym 'read) (setq read ranges)
 	  (if ranges (setq marks (cons (cons mark-sym ranges) marks)))))
       (gnus-info-set-read info (gnus-range-add read missing))
@@ -999,7 +1005,7 @@
 	(insert " ")
 	(princ (nnmaildir--group-maxnum nnmaildir--cur-server group)
 	       nntp-server-buffer)
-	(insert " " gname "\n")
+	(insert " " (gnus-replace-in-string gname " " "\\ " t) "\n")
 	t))))
 
 (defun nnmaildir-request-create-group (gname &optional server args)
@@ -1161,7 +1167,7 @@
 	      (insert "\t" (nnmaildir--nov-get-beg nov) "\t"
 		      (nnmaildir--art-msgid article) "\t"
 		      (nnmaildir--nov-get-mid nov) "\tXref: nnmaildir "
-		      gname ":")
+		      (gnus-replace-in-string gname " " "\\ " t) ":")
 	      (princ num nntp-server-buffer)
 	      (insert "\t" (nnmaildir--nov-get-end nov) "\n"))))
     (catch 'return
--- a/lisp/mail/hashcash.el	Sun Dec 09 14:47:24 2007 +0000
+++ b/lisp/mail/hashcash.el	Sun Dec 09 22:14:32 2007 +0000
@@ -115,13 +115,15 @@
 (require 'mail-utils)
 
 (eval-and-compile
- (if (fboundp 'point-at-bol)
-     (defalias 'hashcash-point-at-bol 'point-at-bol)
-   (defalias 'hashcash-point-at-bol 'line-beginning-position))
+  (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))
 
- (if (fboundp 'point-at-eol)
-     (defalias 'hashcash-point-at-eol 'point-at-eol)
-   (defalias 'hashcash-point-at-eol 'line-end-position)))
+  (if (fboundp 'point-at-bol)
+      (defalias 'hashcash-point-at-bol 'point-at-bol)
+    (defalias 'hashcash-point-at-bol 'line-beginning-position))
+
+  (if (fboundp 'point-at-eol)
+      (defalias 'hashcash-point-at-eol 'point-at-eol)
+    (defalias 'hashcash-point-at-eol 'line-end-position)))
 
 (defun hashcash-strip-quoted-names (addr)
   (setq addr (mail-strip-quoted-names addr))
--- a/lisp/net/imap.el	Sun Dec 09 14:47:24 2007 +0000
+++ b/lisp/net/imap.el	Sun Dec 09 22:14:32 2007 +0000
@@ -1735,6 +1735,18 @@
 		  (concat "UID STORE " articles
 			  " +FLAGS" (if silent ".SILENT") " (" flags ")"))))))
 
+;; Cf. http://thread.gmane.org/gmane.emacs.gnus.general/65317/focus=65343
+;; Signal an error if we'd get an integer overflow.
+;;
+;; FIXME: Identify relevant calls to `string-to-number' and replace them with
+;; `imap-string-to-integer'.
+(defun imap-string-to-integer (string &optional base)
+  (let ((number (string-to-number string base)))
+    (if (> number most-positive-fixnum)
+	(error
+	 (format "String %s cannot be converted to a lisp integer" number))
+      number)))
+
 (defun imap-message-copyuid-1 (mailbox)
   (if (imap-capability 'UIDPLUS)
       (list (nth 0 (imap-mailbox-get-1 'copyuid mailbox))
--- a/lisp/pgg-parse.el	Sun Dec 09 14:47:24 2007 +0000
+++ b/lisp/pgg-parse.el	Sun Dec 09 22:14:32 2007 +0000
@@ -36,7 +36,9 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
+(eval-when-compile
+  (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))
+  (require 'cl))
 
 (defgroup pgg-parse ()
   "OpenPGP packet parsing."
--- a/lisp/pgg.el	Sun Dec 09 14:47:24 2007 +0000
+++ b/lisp/pgg.el	Sun Dec 09 22:14:32 2007 +0000
@@ -35,6 +35,7 @@
 
 ;; Don't merge these two `eval-when-compile's.
 (eval-when-compile
+  (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))
   (require 'cl))
 
 ;;; @ utility functions