* elmo-shimbun.el (elmo-shimbun-entity-to-header): Decode by mime-charset.
[elisp/wanderlust.git] / wl / wl-folder.el
index 46af146..2513336 100644 (file)
     ["Sync Current Folder"  wl-folder-sync-current-entity t]
 ;    ["Drop Current Folder" wl-folder-drop-unsync-current-entity t]
     ["Prefetch Current Folder" wl-folder-prefetch-current-entity t]
+    "----"
     ["Mark as Read all Current Folder" wl-folder-mark-as-read-all-current-entity t]
     ["Expire Current Folder" wl-folder-expire-current-entity t]
+    "----"
+    ["Go to Draft Folder" wl-folder-goto-draft-folder t]
     ["Empty trash" wl-folder-empty-trash t]
     ["Flush queue" wl-folder-flush-queue t]
+    "----"
     ["Open All" wl-folder-open-all t]
     ["Open All Unread folder" wl-folder-open-all-unread-folder t]
     ["Close All" wl-folder-close-all t]
     ["Change Plug Status" wl-plugged-change t]
     "----"
     ["Save Current Status"  wl-save t]
-    ["Update Satus"         wl-status-update t]
+    ["Update Status"        wl-status-update t]
     ["Exit"                 wl-exit t]
     ))
 
   (define-key wl-folder-mode-map "W"    'wl-folder-write-current-folder)
   (define-key wl-folder-mode-map "\C-c\C-o" 'wl-jump-to-draft-buffer)
   (define-key wl-folder-mode-map "\C-c\C-a" 'wl-addrmgr)
+  (define-key wl-folder-mode-map "\C-c\C-p" 'wl-folder-jump-to-previous-summary)
+  (define-key wl-folder-mode-map "\C-c\C-n" 'wl-folder-jump-to-next-summary)
   (define-key wl-folder-mode-map "rS"   'wl-folder-sync-region)
   (define-key wl-folder-mode-map "S"    'wl-folder-sync-current-entity)
   (define-key wl-folder-mode-map "rs"   'wl-folder-check-region)
@@ -2194,6 +2200,10 @@ Use `wl-subscribed-mailing-list'."
   (interactive)
   (wl-folder-goto-folder-subr nil t))
 
+(defun wl-folder-goto-draft-folder (&optional arg)
+  (interactive "P")
+  (wl-folder-goto-folder-subr wl-draft-folder arg))
+
 (defun wl-folder-goto-folder-subr (&optional folder sticky)
   (beginning-of-line)
   (let (summary-buf fld-name entity id error-selecting)
@@ -2229,6 +2239,10 @@ Use `wl-subscribed-mailing-list'."
   ;(if (fboundp 'mmelmo-cleanup-entity-buffers)
   ;(mmelmo-cleanup-entity-buffers))
   (bury-buffer wl-folder-buffer-name)
+  (dolist (summary-buf (wl-collect-summary))
+    (bury-buffer summary-buf))
+  (dolist (draft-buf (wl-collect-draft))
+    (bury-buffer draft-buf))
   (delete-windows-on wl-folder-buffer-name t))
 
 (defun wl-folder-info-save ()
@@ -2783,6 +2797,7 @@ Call `wl-summary-write-current-folder' with current folder name."
       (kill-buffer bufname))))
 
 (defun wl-folder-create-subr (folder)
+  (if (elmo-folder-creatable-p folder)
   (if (y-or-n-p (format "Folder %s does not exist, create it? "
                        (elmo-folder-name-internal folder)))
       (progn
@@ -2793,7 +2808,8 @@ Call `wl-summary-write-current-folder' with current folder name."
               wl-folder-entity-hashtb))
        (unless (elmo-folder-create folder)
          (error "Create folder failed")))
-    (error "Folder %s is not created" (elmo-folder-name-internal folder))))
+       (error "Folder %s is not created" (elmo-folder-name-internal folder)))
+    (error "Folder %s does not exist" (elmo-folder-name-internal folder))))
 
 (defun wl-folder-confirm-existence (folder &optional force)
   (if force
@@ -2858,6 +2874,20 @@ Call `wl-summary-write-current-folder' with current folder name."
                              ","))
        (message "No message was picked.")))))
 
+(defun wl-folder-jump-to-next-summary ()
+  (interactive)
+  (when (wl-collect-summary)
+    (if (get-buffer-window (car (wl-collect-summary)))
+       (switch-to-buffer-other-window (car (wl-collect-summary))))
+    (wl-summary-next-buffer)))
+
+(defun wl-folder-jump-to-previous-summary ()
+  (interactive)
+  (when (wl-collect-summary)
+    (if (get-buffer-window (car (wl-collect-summary)))
+       (switch-to-buffer-other-window (car (wl-collect-summary))))
+    (wl-summary-previous-buffer)))
+
 (require 'product)
 (product-provide (provide 'wl-folder) (require 'wl-version))