Version number is increased to 2.11.14.
[elisp/wanderlust.git] / elmo / elmo-mark.el
index b531e83..beb9873 100644 (file)
@@ -1,4 +1,4 @@
-;;; elmo-mark.el -- Global mark folder for ELMO.
+;;; elmo-mark.el --- Global mark folder for ELMO.
 
 ;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
 
 ;;
 
 ;;; Commentary:
-;; 
+;;
 
 ;;; Code:
-;; 
+;;
 (require 'elmo)
 (require 'elmo-map)
 
@@ -56,9 +56,9 @@
                                                    elmo-mark-folder))
   (expand-file-name "mark"
                    (expand-file-name "internal"
-                                     elmo-msgdb-dir)))
+                                     elmo-msgdb-directory)))
 
-(luna-define-method elmo-map-folder-list-message-locations 
+(luna-define-method elmo-map-folder-list-message-locations
   ((folder elmo-mark-folder))
   (elmo-mark-folder-list-message-locations folder))
 
   (let (result)
     (dolist (pair (or elmo-msgdb-global-mark-alist
                      (setq elmo-msgdb-global-mark-alist
-                           (elmo-object-load 
+                           (elmo-object-load
                             (expand-file-name
                              elmo-msgdb-global-mark-filename
-                             elmo-msgdb-dir)))))
+                             elmo-msgdb-directory)))))
       (if (string= (elmo-mark-folder-mark-internal folder)
                   (cdr pair))
          (setq result (cons (car pair) result))))
    (elmo-map-message-location folder number)))
 
 (luna-define-method elmo-folder-msgdb-create ((folder elmo-mark-folder)
-                                             numbers new-mark
-                                             already-mark seen-mark
-                                             important-mark
-                                             seen-list)
-  (elmo-mark-folder-msgdb-create folder numbers new-mark already-mark
-                                seen-mark important-mark))
-
-(defun elmo-mark-folder-msgdb-create (folder numbers new-mark already-mark
-                                            seen-mark important-mark)
+                                             numbers flag-table)
+  (elmo-mark-folder-msgdb-create folder numbers))
+
+(defun elmo-mark-folder-msgdb-create (folder numbers)
   (let ((i 0)
        (len (length numbers))
-       overview number-alist mark-alist entity message-id
-       num)
+       (new-msgdb (elmo-make-msgdb))
+       entity message-id)
     (message "Creating msgdb...")
     (while numbers
       (setq entity
            (elmo-msgdb-create-overview-entity-from-file
             (car numbers) (elmo-message-file-name folder (car numbers))))
-      (if (null entity)
-         ()
-       (setq num (elmo-msgdb-overview-entity-get-number entity))
-       (setq overview
-             (elmo-msgdb-append-element
-              overview entity))
-       (setq message-id (elmo-msgdb-overview-entity-get-id entity))
-       (setq number-alist
-             (elmo-msgdb-number-add number-alist
-                                    num
-                                    message-id))
-       (setq mark-alist
-             (elmo-msgdb-mark-append
-              mark-alist
-              num (elmo-mark-folder-mark-internal folder))))
+      (when entity
+       (elmo-msgdb-append-entity new-msgdb
+                                 entity
+                                 '(important cached)))
       (when (> len elmo-display-progress-threshold)
        (setq i (1+ i))
        (elmo-display-progress
         (/ (* i 100) len)))
       (setq numbers (cdr numbers)))
     (message "Creating msgdb...done")
-    (list overview number-alist mark-alist)))
+    new-msgdb))
 
 (luna-define-method elmo-folder-append-buffer ((folder elmo-mark-folder)
-                                              unread &optional number)
+                                              &optional flag number)
   (let* ((msgid (elmo-field-body "message-id"))
         (path (elmo-file-cache-get-path msgid))
         dir)
       (when (file-writable-p path)
        (write-region-as-binary (point-min) (point-max)
                                path nil 'no-msg)))
-    (elmo-msgdb-global-mark-set msgid 
+    (elmo-msgdb-global-mark-set msgid
                                (elmo-mark-folder-mark-internal folder))))
 
 (luna-define-method elmo-map-folder-delete-messages ((folder elmo-mark-folder)
 (luna-define-method elmo-folder-exists-p ((folder elmo-mark-folder))
   t)
 
-(luna-define-method elmo-folder-search ((folder elmo-mark-folder)
-                                       condition &optional from-msgs)
-  (let* ((msgs (or from-msgs (elmo-folder-list-messages folder)))
-        (number-list msgs)
-        (i 0)
-        (num (length msgs))
-        file
-        matched
-        case-fold-search)
-    (while msgs
-      (if (and (setq file (elmo-message-file-name folder (car msgs)))
-              (file-exists-p file)
-              (elmo-file-field-condition-match file
-                                               condition
-                                               (car msgs)
-                                               number-list))
-         (setq matched (nconc matched (list (car msgs)))))
-      (elmo-display-progress
-       'elmo-internal-folder-search "Searching..."
-       (/ (* (setq i (1+ i)) 100) num))
-      (setq msgs (cdr msgs)))
-    matched))
-
-;;; To override elmo-map-folder methods.
-(luna-define-method elmo-folder-list-unreads-internal
-  ((folder elmo-mark-folder) unread-marks &optional mark-alist)
-  t)
-
-(luna-define-method elmo-folder-unmark-important ((folder elmo-mark-folder)
-                                                 numbers)
-  t)
-
-(luna-define-method elmo-folder-mark-as-important ((folder elmo-mark-folder)
-                                                  numbers)
-  t)
-
-(luna-define-method elmo-folder-unmark-read ((folder elmo-mark-folder) numbers)
-  t)
-
-(luna-define-method elmo-folder-mark-as-read ((folder elmo-mark-folder) numbers)
+(luna-define-method elmo-folder-writable-p ((folder elmo-mark-folder))
   t)
 
 (require 'product)