summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2007-12-09 22:14:32 +0000
committerMiles Bader <miles@gnu.org>2007-12-09 22:14:32 +0000
commit21ee0911f749a8dfaf97d13075bfec4862c06161 (patch)
tree3740d08b42ef85f5a1ea28f6f4e7b0f9853b5d78
parent0e250bf8782b236076a03f470eab9ce3a26bccb5 (diff)
Merge from gnus--devo--0
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-950
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/gnus/ChangeLog12
-rw-r--r--lisp/gnus/nnmaildir.el22
-rw-r--r--lisp/mail/hashcash.el14
-rw-r--r--lisp/net/imap.el12
-rw-r--r--lisp/pgg-parse.el4
-rw-r--r--lisp/pgg.el1
7 files changed, 57 insertions, 15 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5c44fc072ef..db5930b7db6 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index e54a5f4783e..4bddd344115 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -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):
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el
index e7674168484..829b3761cd3 100644
--- a/lisp/gnus/nnmaildir.el
+++ b/lisp/gnus/nnmaildir.el
@@ -884,7 +884,9 @@ by nnmaildir-request-article.")
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 @@ by nnmaildir-request-article.")
(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 @@ by nnmaildir-request-article.")
(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 @@ by nnmaildir-request-article.")
(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 @@ by nnmaildir-request-article.")
(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
diff --git a/lisp/mail/hashcash.el b/lisp/mail/hashcash.el
index 1f4483a7c94..36cd17fe6fc 100644
--- a/lisp/mail/hashcash.el
+++ b/lisp/mail/hashcash.el
@@ -115,13 +115,15 @@ For example, you may want to set this to '(\"-Z2\") to reduce header length."
(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))
diff --git a/lisp/net/imap.el b/lisp/net/imap.el
index 85af73972fe..40e41d79de7 100644
--- a/lisp/net/imap.el
+++ b/lisp/net/imap.el
@@ -1735,6 +1735,18 @@ is non-nil return these properties."
(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))
diff --git a/lisp/pgg-parse.el b/lisp/pgg-parse.el
index 336c492efde..87bafc08fd4 100644
--- a/lisp/pgg-parse.el
+++ b/lisp/pgg-parse.el
@@ -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."
diff --git a/lisp/pgg.el b/lisp/pgg.el
index 6e4a2a874ec..74b6ed7cb22 100644
--- a/lisp/pgg.el
+++ b/lisp/pgg.el
@@ -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