2008-07-06 YAMASHITA Junji <ysiijj@gmail.com>
[elisp/wanderlust.git] / elmo / elmo-imap4.el
index 6bd10f5..0cc8e37 100644 (file)
@@ -331,14 +331,14 @@ Returns a TAG string which is assigned to the COMMAND."
                          ;; rfc2088
                          (progn
                            (setq cmdstr (concat cmdstr
-                                                (format "{%d+}" (nth 2 token))))
+                                                (format "{%d+}" (nth 2 token))
+                                                "\r\n"))
                            (process-send-string process cmdstr)
-                           (process-send-string process "\r\n")
                            (setq cmdstr nil))
                        (setq cmdstr (concat cmdstr
-                                            (format "{%d}" (nth 2 token))))
+                                            (format "{%d}" (nth 2 token))
+                                            "\r\n"))
                        (process-send-string process cmdstr)
-                       (process-send-string process "\r\n")
                        (setq cmdstr nil)
                        (elmo-imap4-accept-continue-req session))
                      (cond ((stringp (nth 1 token))
@@ -356,9 +356,7 @@ Returns a TAG string which is assigned to the COMMAND."
              (t
               (error "Invalid argument")))
        (setq command-args (cdr command-args)))
-      (if cmdstr
-         (process-send-string process cmdstr))
-      (process-send-string process "\r\n")
+      (process-send-string process (concat cmdstr "\r\n"))
       tag)))
 
 (defun elmo-imap4-send-string (session string)
@@ -1604,22 +1602,23 @@ Return nil if no complete line has arrived."
        (setq status
              (cons
               (let ((token (read (current-buffer))))
-                (cond ((eq token 'MESSAGES)
-                       (list 'messages (read (current-buffer))))
-                      ((eq token 'RECENT)
-                       (list 'recent (read (current-buffer))))
-                      ((eq token 'UIDNEXT)
-                       (list 'uidnext (read (current-buffer))))
-                      ((eq token 'UIDVALIDITY)
-                       (and (looking-at " \\([0-9]+\\)")
-                            (prog1 (list 'uidvalidity (match-string 1))
-                              (goto-char (match-end 1)))))
-                      ((eq token 'UNSEEN)
-                       (list 'unseen (read (current-buffer))))
-                      (t
-                       (message
-                        "Unknown status data %s in mailbox %s ignored"
-                        token mailbox))))
+                (case (intern (upcase (symbol-name token)))
+                  (MESSAGES
+                   (list 'messages (read (current-buffer))))
+                  (RECENT
+                   (list 'recent (read (current-buffer))))
+                  (UIDNEXT
+                   (list 'uidnext (read (current-buffer))))
+                  (UIDVALIDITY
+                   (and (looking-at " \\([0-9]+\\)")
+                        (prog1 (list 'uidvalidity (match-string 1))
+                          (goto-char (match-end 1)))))
+                  (UNSEEN
+                   (list 'unseen (read (current-buffer))))
+                  (t 
+                   (message
+                    "Unknown status data %s in mailbox %s ignored"
+                    token mailbox))))
               status))
        (skip-chars-forward " ")))
     (and elmo-imap4-status-callback