# HG changeset patch # User Miles Bader # Date 1197238472 0 # Node ID bc4976b7380e8bc84e74a6ba0a9fce6598c1c7dc # Parent 87e24ce4f26a325efe7706c8724e48498f6a3626 Merge from gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-950 diff -r 87e24ce4f26a -r bc4976b7380e lisp/ChangeLog --- 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 + + * 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 * emacs-lisp/lisp-mnt.el (lm-verify): Make it work with diff -r 87e24ce4f26a -r bc4976b7380e lisp/gnus/ChangeLog --- 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 (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 + + * 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 + . + 2007-12-06 D. Goel * gnus-art.el (article-make-date-line): diff -r 87e24ce4f26a -r bc4976b7380e lisp/gnus/nnmaildir.el --- 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 diff -r 87e24ce4f26a -r bc4976b7380e lisp/mail/hashcash.el --- 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)) diff -r 87e24ce4f26a -r bc4976b7380e lisp/net/imap.el --- 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)) diff -r 87e24ce4f26a -r bc4976b7380e lisp/pgg-parse.el --- 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." diff -r 87e24ce4f26a -r bc4976b7380e lisp/pgg.el --- 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