From c0dc79cad1f1461ae7a0b05e7608f7ef0255b395 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Sun, 6 Oct 2002 04:19:48 +0000 Subject: [PATCH] Synch with Oort Gnus. --- lisp/ChangeLog | 12 ++++++++++++ lisp/gnus-agent.el | 7 ++++--- lisp/imap.el | 36 +++++++++++++++++++++--------------- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b593eb8..27e7430 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,17 @@ +2002-10-06 Simon Josefsson + + * imap.el (imap-parse-status): Don't use read to read token. + +2002-10-05 Kai Gro,A_(Bjohann + + * gnus-agent.el (gnus-agent-fetch-selected-article): Do nothing + for methods not covered by the agent, and when unplugged. + 2002-10-05 Simon Josefsson + * pgg-gpg.el (pgg-gpg-encrypt-region): Query passphrase when + signing. + * gnus-agent.el (gnus-agent-read-servers): If getting method from a named server fails, ignore the server. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 742d3b2..df30949 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -801,9 +801,10 @@ Optional arg ALL, if non-nil, means to fetch all articles." This can be added to `gnus-select-article-hook' or `gnus-mark-article-hook'." (let ((gnus-command-method gnus-current-select-method)) - (gnus-agent-fetch-articles - gnus-newsgroup-name - (list gnus-current-article)))) + (when (and gnus-plugged (gnus-agent-method-p gnus-command-method)) + (gnus-agent-fetch-articles + gnus-newsgroup-name + (list gnus-current-article))))) ;;; ;;; Internal functions diff --git a/lisp/imap.el b/lisp/imap.el index 9d30166..4ff3e70 100644 --- a/lisp/imap.el +++ b/lisp/imap.el @@ -2276,26 +2276,32 @@ Return nil if no complete line has arrived." (defun imap-parse-status () (let ((mailbox (imap-parse-mailbox))) - (when (and mailbox (search-forward "(" nil t)) - (while (not (eq (char-after) ?\))) - (let ((token (read (current-buffer)))) - (cond ((eq token 'MESSAGES) + (if (eq (char-after) ? ) + (forward-char)) + (when (and mailbox (eq (char-after) ?\()) + (while (and (not (eq (char-after) ?\))) + (or (forward-char) t) + (looking-at "\\([A-Za-z]+\\) ")) + (let ((token (match-string 1))) + (goto-char (match-end 0)) + (cond ((string= token "MESSAGES") (imap-mailbox-put 'messages (read (current-buffer)) mailbox)) - ((eq token 'RECENT) + ((string= token "RECENT") (imap-mailbox-put 'recent (read (current-buffer)) mailbox)) - ((eq token 'UIDNEXT) - (and (looking-at " \\([0-9]+\\)") - (imap-mailbox-put 'uidnext (match-string 1) mailbox) - (goto-char (match-end 1)))) - ((eq token 'UIDVALIDITY) - (and (looking-at " \\([0-9]+\\)") - (imap-mailbox-put 'uidvalidity (match-string 1) mailbox) - (goto-char (match-end 1)))) - ((eq token 'UNSEEN) + ((string= token "UIDNEXT") + (and (looking-at "[0-9]+") + (imap-mailbox-put 'uidnext (match-string 0) mailbox) + (goto-char (match-end 0)))) + ((string= token "UIDVALIDITY") + (and (looking-at "[0-9]+") + (imap-mailbox-put 'uidvalidity (match-string 0) mailbox) + (goto-char (match-end 0)))) + ((string= token "UNSEEN") (imap-mailbox-put 'unseen (read (current-buffer)) mailbox)) (t (message "Unknown status data %s in mailbox %s ignored" - token mailbox)))))))) + token mailbox) + (read (current-buffer))))))))) ;; acl_data ::= "ACL" SPACE mailbox *(SPACE identifier SPACE ;; rights) -- 1.7.10.4