Synch with Gnus.
authoryamaoka <yamaoka>
Sun, 3 Sep 2000 22:22:32 +0000 (22:22 +0000)
committeryamaoka <yamaoka>
Sun, 3 Sep 2000 22:22:32 +0000 (22:22 +0000)
lisp/ChangeLog
lisp/gnus-sum.el
lisp/imap.el

index 6aa825b..4166317 100644 (file)
@@ -1,5 +1,11 @@
+2000-09-03  Simon Josefsson  <simon@josefsson.org>
+
+       * gnus-sum.el (gnus-summary-delete-article): Check server.
+
 2000-09-01  Simon Josefsson  <simon@josefsson.org>
 
+       * imap.el (imap-parse-flag-list): Rewrite.
+
        * nnimap.el (nnimap-retrieve-headers-from-file): Ignore errors.
 
        * imap.el (imap-parse-flag-list): Hack.
index 3d3f5e9..6dcfa1f 100644 (file)
@@ -7907,6 +7907,8 @@ delete these instead."
   (unless (gnus-check-backend-function 'request-expire-articles
                                       gnus-newsgroup-name)
     (error "The current newsgroup does not support article deletion"))
+  (unless (gnus-check-server (gnus-find-method-for-group gnus-newsgroup-name))
+    (error "Couldn't open server"))
   ;; Compute the list of articles to delete.
   (let ((articles (sort (copy-sequence (gnus-summary-work-articles n)) '<))
        not-deleted)
index da60d3f..5998a4a 100644 (file)
@@ -2165,15 +2165,15 @@ Return nil if no complete line has arrived."
 ;;                       ; revisions of this specification.
 
 (defun imap-parse-flag-list ()
-  (let ((str (buffer-substring (point) (search-forward ")" nil t)))
-       pos)
-    (while (setq pos (string-match "\\\\" str (and pos (+ 2 pos))))
-      (setq str (replace-match "\\\\" nil t str)))
-    ;; xxx ugly. rewrite not to use `read' at all.
-    (when (= (length (symbol-name (read "A?A"))) 1)
-      (while (setq pos (string-match "\\?" str (and pos (+ 2 pos))))
-       (setq str (replace-match "\\?" nil t str))))
-    (mapcar 'symbol-name (read str))))
+  (let (flag-list start)
+    (when (eq (char-after) ?\()
+      (imap-forward)
+      (while (and (not (eq (char-before) ?\)))
+                 (setq start (point))
+                 (> (skip-chars-forward "^ )" (gnus-point-at-eol)) 0))
+       (push (buffer-substring start (point)) flag-list)
+       (imap-forward))
+      (nreverse flag-list))))
 
 ;;   envelope        = "(" env-date SP env-subject SP env-from SP env-sender SP
 ;;                     env-reply-to SP env-to SP env-cc SP env-bcc SP