;;
;; app-data:
-;; cons of flag-table and result of use-flag-p.
+;; cons of flag-table and folder structure
(defsubst elmo-imap4-fetch-callback-1-subr (entity flags app-data)
"A msgdb entity callback function."
- (let ((use-flag (cdr app-data))
+ (let ((use-flag (elmo-folder-use-flag-p (cdr app-data)))
(flag-table (car app-data))
(msg-id (elmo-msgdb-overview-entity-get-id entity))
saved-flags flag-list)
- (when (elmo-string-member-ignore-case "\\Flagged" flags)
- (elmo-msgdb-global-mark-set msg-id elmo-msgdb-important-mark))
+;; (when (elmo-string-member-ignore-case "\\Flagged" flags)
+;; (elmo-msgdb-global-mark-set msg-id elmo-msgdb-important-mark))
(setq saved-flags (elmo-flag-table-get flag-table msg-id)
flag-list
(if use-flag
(defun elmo-imap4-search-internal-primitive (folder session filter from-msgs)
(let ((search-key (elmo-filter-key filter))
(imap-search-keys '("bcc" "body" "cc" "from" "subject" "to"
- "larger" "smaller" "mark"))
+ "larger" "smaller" "flag"))
(total 0)
(length (length from-msgs))
charset set-list end results)
(setq elmo-imap4-current-msgdb (elmo-make-msgdb)
elmo-imap4-seen-messages nil
elmo-imap4-fetch-callback 'elmo-imap4-fetch-callback-1
- elmo-imap4-fetch-callback-data (cons flag-table
- (elmo-folder-use-flag-p
- folder)))
+ elmo-imap4-fetch-callback-data (cons flag-table folder))
(while set-list
(elmo-imap4-send-command-wait
session
(message "Getting overview...done")
(when elmo-imap4-seen-messages
(elmo-imap4-set-flag folder elmo-imap4-seen-messages "\\Seen"))
+ ;; cannot setup the global flag while retrieval.
+ (dolist (number (elmo-msgdb-list-messages elmo-imap4-current-msgdb))
+ (elmo-global-flags-set (elmo-msgdb-flags elmo-imap4-current-msgdb
+ number)
+ folder number
+ (elmo-msgdb-message-entity-field
+ (elmo-msgdb-message-entity
+ elmo-imap4-current-msgdb number)
+ 'message-id)))
elmo-imap4-current-msgdb))))
-(luna-define-method elmo-folder-unmark-important-plugged
+(luna-define-method elmo-folder-unflag-important-plugged
((folder elmo-imap4-folder) numbers)
(elmo-imap4-set-flag folder numbers "\\Flagged" 'remove))
-(luna-define-method elmo-folder-mark-as-important-plugged
+(luna-define-method elmo-folder-flag-as-important-plugged
((folder elmo-imap4-folder) numbers)
(elmo-imap4-set-flag folder numbers "\\Flagged"))
-(luna-define-method elmo-folder-unmark-read-plugged
+(luna-define-method elmo-folder-unflag-read-plugged
((folder elmo-imap4-folder) numbers)
(elmo-imap4-set-flag folder numbers "\\Seen" 'remove))
-(luna-define-method elmo-folder-mark-as-read-plugged
+(luna-define-method elmo-folder-flag-as-read-plugged
((folder elmo-imap4-folder) numbers)
(elmo-imap4-set-flag folder numbers "\\Seen"))
-(luna-define-method elmo-folder-unmark-answered-plugged
+(luna-define-method elmo-folder-unflag-answered-plugged
((folder elmo-imap4-folder) numbers)
(elmo-imap4-set-flag folder numbers "\\Answered" 'remove))
-(luna-define-method elmo-folder-mark-as-answered-plugged
+(luna-define-method elmo-folder-flag-as-answered-plugged
((folder elmo-imap4-folder) numbers)
(elmo-imap4-set-flag folder numbers "\\Answered"))
condition)
nil)
+(autoload 'elmo-global-flags-set "elmo-flag")
+
(require 'product)
(product-provide (provide 'elmo-imap4) (require 'elmo-version))