マーク処理メモ (elmo-mark 枝) by teranisi * wl-summary-*-mark => elmo-msgdb-*-mark に変数名を変更。 * elmo-folder-list-messages に引数 in-msgdb を追加。 * answered マークの追加 answered-uncached なら A answered-cached なら & unread-uncached なら U unread-cached なら ! new なら N read-uncached なら u read-cached なら ' ' * filter, search の検索条件 flag:unread flag:important flag:answered flag:digest flag:any という条件をかけるようにする。 * msgdb のマーク処理 フィルタフォルダ, マルチフォルダでは、オリジナルの msgdb も読み書きする。 msgdb とサマリビューは open 時に sync する。 * seen-list の廃止 seen-list は廃止し、{"" => "mark"} のハッシュテーブルとする。 elmo-flag-table-load: id-mark-table があれば使う。cons cell の list を hashtable にする。 なければ、seen-list をさがす => seen-list ファイルは消す elmo-flag-table-save: (cons message-id mark) のリストとしてセーブ * (elmo-folder-search-requires-msgdb-p folder condition) を設け、filter フォルダで t なら original msgdb を利用する。 nil なら original は利用しない。 * マークの更新 マークは elmo-folder-mark-as-read、elmo-message-set-cached などにより変更する。 更新されたマークは、操作のあとで elmo-message-mark を呼び出すことにより 得る。 * Mark & Action 一時マークの扱いを整理する. wl-summary-buffer-refile-list wl-summary-buffer-copy-list wl-summary-buffer-delete-list を廃止,新規変数 wl-summary-buffer-temp-mark-list で一時マーク情報を一元管理する. wl-summary-mark-action-list でマークと,対応するアクションを 定義できるようにする. デフォルトのマーク&アクションとして, "o" refile "O" copy "d" dispose (旧 delete) "D" delete (旧 erase) "i" prefetch "~" resend を用意. 関連関数は新規ファイル wl-action.el に定義. * 仮想フォルダの msgdb の扱い pipe, filter, multi では、オリジナルフォルダの msgdb を操作する。 msgdb はフォルダメソッドを介して操作する. * POP3 フォルダ elmo-pop3-exists-exactly のデフォルト値を nil にした. → 接続回数が減った. ---- ここまで DONE ---- * elmo-folder-pack-number でオリジナルの番号入れ換えをする。 (--> 次にオリジナルを visit したときに sync-all が必要) * global mark の管理 elmo-marked-message-folder を作り、そこに置くようにする。 マークを付けると、elmo-marked-message-folder に加える。 マークを消すと、elmo-marked-message-folder から消える。 elmo-marked-message-folder から消すと、元 message のマークが消える。 元 message がなかったら、消えるだけ。 元 message の情報 (folder, number, message-id あたり) を保存しておく。 元 message が消えても、elmo-marked-message-folder には残る。 元 message が移動しても、elmo-marked-message-folder には残る。 update したときに、elmo-marked-message-folder にあればマークを付ける。