* elmo.el (elmo-folder-list-importants): Rewirte. Use global mark
[elisp/wanderlust.git] / elmo / elmo-localdir.el
index 15ced51..3d9358e 100644 (file)
@@ -42,6 +42,8 @@
   :type 'directory
   :group 'elmo)
 
+(defvar elmo-localdir-lockfile-list nil)
+
 ;;; ELMO Local directory folder
 (eval-and-compile
   (luna-define-class elmo-localdir-folder (elmo-folder)
 (luna-define-method elmo-folder-expand-msgdb-path ((folder
                                                    elmo-localdir-folder))
   (expand-file-name 
-   (elmo-replace-string-as-filename 
-    (elmo-localdir-folder-dir-name-internal folder))
+   (mapconcat
+    'identity
+    (mapcar 
+     'elmo-replace-string-as-filename
+     (split-string (elmo-localdir-folder-dir-name-internal folder)
+                  "/"))
+    "/")
    (expand-file-name ;;"localdir"
     (symbol-name (elmo-folder-type-internal folder))
     elmo-msgdb-dir)))
                                                         &optional
                                                         start-number)
   (let ((temp-dir (elmo-folder-make-temp-dir folder))
-       (cur-number (if start-number 0)))
+       (cur-number (or start-number 0)))
     (dolist (number numbers)
       (elmo-add-name-to-file
        (expand-file-name
        (int-to-string number)
        (elmo-localdir-folder-directory-internal folder))
        (expand-file-name
-       (int-to-string (if start-number (incf cur-number) number))
-       temp-dir)))
+       (int-to-string (if start-number cur-number number))
+       temp-dir))
+      (incf cur-number))
     temp-dir))
 
 (defun elmo-localdir-msgdb-create-entity (dir number)
 
 (luna-define-method elmo-folder-list-subfolders ((folder elmo-localdir-folder)
                                                 &optional one-level)
-  (mapcar
+  (elmo-mapcar-list-of-list
    (lambda (x) (concat (elmo-folder-prefix-internal folder) x))
    (elmo-list-subdirectories
     (elmo-localdir-folder-path folder)
       (delete-file filename)
       t)))
 
-(luna-define-method elmo-message-fetch ((folder elmo-localdir-folder)
-                                       number strategy
-                                       &optional section outbuf unseen)
-  ;; strategy, section, unseen is ignored.
-  (if outbuf
-      (with-current-buffer outbuf
-       (erase-buffer)
-       (when (file-exists-p (elmo-message-file-name folder number))
-         (insert-file-contents-as-binary
-          (elmo-message-file-name folder number))
-         (elmo-delete-cr-buffer))
-       t)
-    (with-temp-buffer
-      (when (file-exists-p (elmo-message-file-name folder number))
-       (insert-file-contents-as-binary (elmo-message-file-name folder number))
-       (elmo-delete-cr-buffer))
-      (buffer-string))))
+(luna-define-method elmo-message-fetch-internal ((folder elmo-localdir-folder)
+                                                number strategy
+                                                &optional section unread)
+  (when (file-exists-p (elmo-message-file-name folder number))
+    (insert-file-contents-as-binary
+     (elmo-message-file-name folder number))))
 
 (luna-define-method elmo-folder-list-messages-internal
   ((folder elmo-localdir-folder) &optional nohide)