-;;; 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)
elmo-mark-default-mark)
folder)
+(luna-define-method elmo-folder-have-subfolder-p ((folder elmo-mark-folder))
+ nil)
+
(luna-define-method elmo-folder-expand-msgdb-path ((folder
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))))
dir)
(when path
(setq dir (directory-file-name (file-name-directory path)))
- (if (not (file-exists-p dir))
- (elmo-make-directory dir))
- (as-binary-output-file (write-region (point-min) (point-max)
- path nil 'no-msg)))
- (elmo-msgdb-global-mark-set msgid
+ (unless (file-exists-p dir)
+ (elmo-make-directory 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-mark-folder-mark-internal folder))))
(luna-define-method elmo-map-folder-delete-messages ((folder elmo-mark-folder)
(dolist (location locations)
(elmo-msgdb-global-mark-delete location)))
-(luna-define-method elmo-map-message-fetch ((folder elmo-mark-folder)
- location strategy &optional
- section outbuf unseen)
- (elmo-mark-folder-map-message-fetch folder location strategy
- section outbuf unseen))
+(luna-define-method elmo-message-fetch-with-cache-process
+ ((folder elmo-mark-folder) number strategy &optional section unseen)
+ ;; disbable cache process
+ (elmo-message-fetch-internal folder number strategy section unseen))
-(defun elmo-mark-folder-map-message-fetch (folder location strategy
- section outbuf unseen)
+(luna-define-method elmo-map-message-fetch ((folder elmo-mark-folder)
+ location strategy
+ &optional section unseen)
(let ((file (elmo-file-cache-get-path location)))
(when (file-exists-p file)
- (if outbuf
- (with-current-buffer outbuf
- (erase-buffer)
- (insert-file-contents-as-binary file)
- (elmo-delete-cr-buffer)
- t)
- (with-temp-buffer
- (insert-file-contents-as-binary file)
- (elmo-delete-cr-buffer)
- (buffer-string))))))
+ (insert-file-contents-as-binary file))))
(luna-define-method elmo-folder-exists-p ((folder elmo-mark-folder))
t)
+(luna-define-method elmo-folder-writable-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)))
file
matched
case-fold-search)
- (setq num (length msgs))
(while msgs
(if (and (setq file (elmo-message-file-name folder (car msgs)))
(file-exists-p file)
;;; To override elmo-map-folder methods.
(luna-define-method elmo-folder-list-unreads-internal
- ((folder elmo-mark-folder) unread-marks)
- t)
-
-(luna-define-method elmo-folder-list-importants-internal
- ((folder elmo-mark-folder) important-mark)
+ ((folder elmo-mark-folder) unread-marks &optional mark-alist)
t)
(luna-define-method elmo-folder-unmark-important ((folder elmo-mark-folder)