:type 'symbol
:group 'elmo)
-(defcustom elmo-nmz-args '("--all" "--list" "--early")
+(defcustom elmo-nmz-args '("--all" "--list" "--late")
"*Argument list for namazu to list matched files."
:type '(repeat string)
:group 'elmo)
(elmo-folder-name-internal folder))
(expand-file-name "nmz" elmo-msgdb-directory)))
-(defun elmo-nmz-msgdb-create-entity (folder number)
+(defun elmo-nmz-msgdb-create-entity (msgdb folder number)
"Create msgdb entity for the message in the FOLDER with NUMBER."
(let ((location (expand-file-name (elmo-map-message-location folder number)))
entity uid)
- (setq entity (elmo-msgdb-create-overview-entity-from-file number location))
- (unless (or (> (length (elmo-msgdb-overview-entity-get-to entity)) 0)
- (> (length (elmo-msgdb-overview-entity-get-cc entity)) 0)
- (not (string= (elmo-msgdb-overview-entity-get-subject entity)
+ (setq entity (elmo-msgdb-create-message-entity-from-file
+ (elmo-msgdb-message-entity-handler msgdb) number location))
+ (unless (or (> (length (elmo-message-entity-field entity 'to)) 0)
+ (> (length (elmo-message-entity-field entity 'cc)) 0)
+ (not (string= (elmo-message-entity-field entity 'subject)
elmo-no-subject)))
- (elmo-msgdb-overview-entity-set-subject entity location)
+ (elmo-message-entity-set-field entity 'subject location)
(setq uid (nth 2 (file-attributes location)))
- (elmo-msgdb-overview-entity-set-from entity
- (concat
- (user-full-name uid)
- " <"(user-login-name uid) "@"
- (system-name) ">")))
+ (elmo-message-entity-set-field entity 'from
+ (concat
+ (user-full-name uid)
+ " <"(user-login-name uid) "@"
+ (system-name) ">")))
entity))
(luna-define-method elmo-folder-msgdb-create ((folder elmo-nmz-folder)
- numlist new-mark
- already-mark seen-mark
- important-mark
- seen-list)
- (let* (overview number-alist mark-alist entity
- i percent num pair)
+ numlist flag-table)
+ (let ((new-msgdb (elmo-make-msgdb))
+ entity mark i percent num)
(setq num (length numlist))
(setq i 0)
(message "Creating msgdb...")
(while numlist
(setq entity
(elmo-nmz-msgdb-create-entity
- folder (car numlist)))
+ new-msgdb folder (car numlist)))
(when entity
- (setq overview
- (elmo-msgdb-append-element
- overview entity))
- (setq number-alist
- (elmo-msgdb-number-add number-alist
- (elmo-msgdb-overview-entity-get-number
- entity)
- (elmo-msgdb-overview-entity-get-id
- entity)))
- (setq mark-alist
- (elmo-msgdb-mark-append
- mark-alist
- (elmo-msgdb-overview-entity-get-number
- entity)
- (or (elmo-msgdb-global-mark-get
- (elmo-msgdb-overview-entity-get-id
- entity))
- new-mark))))
+ (elmo-msgdb-append-entity new-msgdb entity '(new unread)))
(when (> num elmo-display-progress-threshold)
(setq i (1+ i))
(setq percent (/ (* i 100) num))
'elmo-folder-msgdb-create "Creating msgdb..."
percent))
(setq numlist (cdr numlist)))
- (message "Creating msgdb...done.")
- (list overview number-alist mark-alist)))
+ (message "Creating msgdb...done")
+ new-msgdb))
(luna-define-method elmo-folder-message-file-p ((folder elmo-nmz-folder))
t)
((folder elmo-nmz-folder))
t)
-(luna-define-method elmo-folder-diff ((folder elmo-nmz-folder)
- &optional numbers)
+(luna-define-method elmo-folder-diff ((folder elmo-nmz-folder))
(cons nil nil))
(luna-define-method elmo-folder-message-make-temp-files ((folder
(end-of-line)
(setq locations (cons (buffer-substring bol (point)) locations))
(forward-line 1))
- locations)))
+ (nreverse locations))))
(luna-define-method elmo-folder-exists-p ((folder elmo-nmz-folder))
t)
-(luna-define-method elmo-folder-search ((folder elmo-nmz-folder)
- condition &optional from-msgs)
- (let* ((msgs (or from-msgs (elmo-folder-list-messages folder)))
- (orig msgs)
- (i 0)
- case-fold-search matches
- percent num
- (num (length msgs)))
- (while msgs
- (if (elmo-file-field-condition-match
- (elmo-map-message-location folder (car msgs))
- condition
- (car msgs)
- orig)
- (setq matches (cons (car msgs) matches)))
- (setq i (1+ i))
- (setq percent (/ (* i 100) num))
- (elmo-display-progress
- 'elmo-nmz-search "Searching..."
- percent)
- (setq msgs (cdr msgs)))
- matches))
-
-;;; To override elmo-map-folder methods.
-(luna-define-method elmo-folder-list-unreads-internal
- ((folder elmo-nmz-folder) unread-marks &optional mark-alist)
- t)
-
-(luna-define-method elmo-folder-unmark-important ((folder elmo-nmz-folder)
- numbers)
- t)
-
-(luna-define-method elmo-folder-mark-as-important ((folder elmo-nmz-folder)
- numbers)
- t)
-
-(luna-define-method elmo-folder-unmark-read ((folder elmo-nmz-folder) numbers)
- t)
-
-(luna-define-method elmo-folder-mark-as-read ((folder elmo-nmz-folder) numbers)
- t)
-
(require 'product)
(product-provide (provide 'elmo-nmz) (require 'elmo-version))