;;; ELMO internal folder
(luna-define-class elmo-internal-folder (elmo-folder) ())
+(defvar elmo-internal-folder-list '(flag cache sendlog null))
+(defvar elmo-internal-obsolete-folder-list '((mark flag)))
+
(luna-define-method elmo-folder-initialize ((folder
elmo-internal-folder)
name)
+ (when (assq (intern name) elmo-internal-obsolete-folder-list)
+ (elmo-warning
+ "Folder '%s is now obsolete. Use '%s instead."
+ name
+ (cadr (assq (intern name) elmo-internal-obsolete-folder-list))))
(elmo-internal-folder-initialize folder name))
-(defvar elmo-internal-folder-list '(flag cache sendlog))
-
(defun elmo-internal-folder-initialize (folder name)
(let ((fsyms elmo-internal-folder-list)
fname class sym)
:type sym
:prefix (elmo-folder-prefix-internal folder)
:name (elmo-folder-name-internal folder)
- :persistent (elmo-folder-persistent-internal folder))
+ :persistent (elmo-folder-persistent-internal folder)
+ :mime-charset (elmo-folder-mime-charset-internal folder))
name)
folder)))
(luna-define-method elmo-folder-list-subfolders ((folder elmo-internal-folder)
&optional one-level)
- (mapcar
- (lambda (x)
- (if (elmo-folder-have-subfolder-p
- (elmo-make-folder
- (concat (elmo-folder-prefix-internal folder)
- (symbol-name x))))
- (list (concat (elmo-folder-prefix-internal folder)
- (symbol-name x)))
- (concat (elmo-folder-prefix-internal folder)
- (symbol-name x))))
- elmo-internal-folder-list))
+ (if one-level
+ (mapcar
+ (lambda (x)
+ (let ((name (concat (elmo-folder-prefix-internal folder)
+ (symbol-name x))))
+ (if (elmo-folder-have-subfolder-p (elmo-get-folder name))
+ (list name)
+ name)))
+ elmo-internal-folder-list)
+ (apply #'nconc
+ (mapcar
+ (lambda (x)
+ (let* ((name (concat (elmo-folder-prefix-internal folder)
+ (symbol-name x)))
+ (subfolder (elmo-get-folder name)))
+ (if (elmo-folder-have-subfolder-p subfolder)
+ (elmo-folder-list-subfolders subfolder)
+ (list name))))
+ elmo-internal-folder-list))))
(require 'product)
(product-provide (provide 'elmo-internal) (require 'elmo-version))