From 21ee0911f749a8dfaf97d13075bfec4862c06161 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Sun, 9 Dec 2007 22:14:32 +0000 Subject: [PATCH] Merge from gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-950 --- lisp/ChangeLog | 7 +++++++ lisp/gnus/ChangeLog | 12 ++++++++++++ lisp/gnus/nnmaildir.el | 22 ++++++++++++++-------- lisp/mail/hashcash.el | 14 ++++++++------ lisp/net/imap.el | 12 ++++++++++++ lisp/pgg-parse.el | 4 +++- lisp/pgg.el | 1 + 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 + + * 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 --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 (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 --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 -- 2.39.2