2009-05-26 Vitaly Mayatskikh <v.mayatskih@gmail.com>
authorkaoru <kaoru>
Thu, 28 May 2009 10:49:50 +0000 (10:49 +0000)
committerkaoru <kaoru>
Thu, 28 May 2009 10:49:50 +0000 (10:49 +0000)
* modb-standard.el (modb-standard-cleanup-stale-entities): New
function, Remove stale entities from elmo's cache.

elmo/ChangeLog
elmo/modb-standard.el

index 9eda801..2409a29 100644 (file)
@@ -5,6 +5,9 @@
         * elmo-mime.el (elmo-mime-entity-display): Fix Emacs crash in
        mime-view when displaying malformed base64 attach.
 
+       * modb-standard.el (modb-standard-cleanup-stale-entities): New
+       function, Remove stale entities from elmo's cache.
+
 2009-05-26  TAKAHASHI Kaoru  <kaoru@kaisei.org>
 
        * elmo-version.el (elmo-version): Up to 2.15.7.
index 1ecfcd6..dc413c8 100644 (file)
                           entities))
       (ignore-errors (delete-file filename)))))
 
+(defun modb-standard-cleanup-stale-entities (modb path)
+  (message "Removing stale entities...")
+  (let* ((entity-regex
+         (concat "^" modb-standard-entity-filename "-\\([0-9]+\\)"))
+        (entities (elmo-uniq-list
+                   (mapcar
+                    #'(lambda (x) (/ x modb-standard-divide-number))
+                    (modb-standard-number-list-internal modb))))
+        (files (mapcar #'(lambda(x)
+                           (when (string-match entity-regex x)
+                             (string-to-int (match-string 1 x))))
+                       (directory-files path nil entity-regex))))
+    (dolist (entity (car (elmo-list-diff-nonsortable files entities)))
+      (ignore-errors (delete-file
+                     (expand-file-name
+                      (modb-standard-entity-filename entity) path))))))
+
 (defun modb-standard-save-entity (modb path)
   (let ((modified (modb-generic-message-modified-internal modb)))
     (cond ((listp modified)