* elmo.el (elmo-folder-open-internal-p): New luna method.
[elisp/wanderlust.git] / elmo / elmo.el
index 9919a84..c3c0bd7 100644 (file)
@@ -217,6 +217,9 @@ If optional LOAD-MSGDB is non-nil, msgdb is loaded.
 (luna-define-generic elmo-folder-open-internal (folder)
   "Open FOLDER (without loading saved folder status).")
 
+(luna-define-generic elmo-folder-open-internal-p (folder)
+  "Return non-nil if FOLDER is opened internally.")
+
 (luna-define-generic elmo-folder-check (folder)
   "Check the FOLDER to obtain newest information at the next list operation.")
 
@@ -713,6 +716,10 @@ Return a cons cell of (NUMBER-CROSSPOSTS . NEW-FLAG-ALIST).")
   nil ; default is do nothing.
   )
 
+(luna-define-method elmo-folder-open-internal-p ((folder elmo-folder))
+  t ; default is always opened internally
+  )
+
 (luna-define-method elmo-folder-check ((folder elmo-folder))
   nil) ; default is noop.
 
@@ -860,7 +867,7 @@ Return a cons cell of (NUMBER-CROSSPOSTS . NEW-FLAG-ALIST).")
     (when (and filename (file-readable-p filename))
       (with-temp-buffer
        (set-buffer-multibyte nil)
-       ;;(insert-file-contents-as-binary filename)
+;;;    (insert-file-contents-as-binary filename)
        (elmo-message-fetch folder number
                            (elmo-make-fetch-strategy 'entire
                                                      (and cache t)
@@ -954,7 +961,8 @@ If optional argument IF-EXISTS is nil, load on demand.
   (elmo-folder-set-info-hashtb
    folder
    (if numbers (apply #'max numbers) 0)
-   nil ;;(length num-db)
+;;;   (length num-db)
+   nil
    ))
 
 (defun elmo-folder-get-info-max (folder)
@@ -1187,7 +1195,8 @@ Returns a list of message numbers successfully appended."
          (error "move: %d is not writable"
                 (elmo-folder-name-internal dst-folder)))
        (when messages
-         ;; src is already opened.
+         (unless (elmo-folder-open-internal-p src-folder)
+           (elmo-folder-open-internal src-folder))
          (elmo-folder-open-internal dst-folder)
          (unless (setq succeeds (elmo-folder-append-messages dst-folder
                                                              src-folder
@@ -1209,7 +1218,7 @@ Returns a list of message numbers successfully appended."
            result)
        (if no-delete
            (progn
-             ;; (message "Copying messages...done")
+;;;          (message "Copying messages...done")
              t)
          (if (eq len 0)
              (message "No message was moved.")
@@ -1450,10 +1459,10 @@ If Optional LOCAL is non-nil, don't update server flag."
   ;; Do nothing.
   )
 
-;;(luna-define-generic elmo-folder-append-message-entity (folder entity
-;;                                                            &optional
-;;                                                            flag-table)
-;;  "Append ENTITY to the folder.")
+;;;(luna-define-generic elmo-folder-append-message-entity (folder entity
+;;;                                                           &optional
+;;;                                                           flag-table)
+;;;  "Append ENTITY to the folder.")
 
 (defun elmo-msgdb-merge (folder msgdb-merge)
   "Return a list of messages which have duplicated message-id."
@@ -1497,7 +1506,7 @@ If Optional LOCAL is non-nil, don't update server flag."
          (catch 'end
            (while t
              (setq in (read-from-minibuffer "Update number: "
-                                            (int-to-string in))
+                                            (number-to-string in))
                    in (string-to-number in))
              (if (< len in)
                  (throw 'end len))
@@ -1775,8 +1784,8 @@ Return a hashtable for newsgroups."
       (while alist
        (setq newsgroups
              (elmo-delete-if
-              '(lambda (x)
-                 (not (intern-soft x elmo-newsgroups-hashtb)))
+              (lambda (x)
+                (not (intern-soft x elmo-newsgroups-hashtb)))
               (nth 1 (car alist))))
        (if newsgroups
            (setcar (cdar alist) newsgroups)