* wl-template.el (wl-template-preview): New internal variable.
[elisp/wanderlust.git] / wl / wl-folder.el
index fd45c0a..ded5218 100644 (file)
@@ -1810,13 +1810,11 @@ Entering Folder mode calls the value of `wl-folder-mode-hook'."
   (wl-folder-check-entity wl-folder-entity))
 
 (defun wl-folder-entity-hashtb-set (entity-hashtb name value buffer)
-  (let (cur-val
+  (let ((cur-val (wl-folder-get-entity-info name entity-hashtb))
        (new-diff 0)
        (unread-diff 0)
        (all-diff 0)
-       diffs
-       entity-list)
-    (setq cur-val (wl-folder-get-entity-info name entity-hashtb))
+       diffs)
     (setq new-diff    (- (or (nth 0 value) 0) (or (nth 0 cur-val) 0)))
     (setq unread-diff
          (+ new-diff
@@ -1829,47 +1827,45 @@ Entering Folder mode calls the value of `wl-folder-mode-hook'."
       (save-match-data
        (with-current-buffer buffer
          (save-excursion
-           (setq entity-list (wl-folder-search-entity-list-by-name
-                              name wl-folder-entity))
-           (while entity-list
-             (wl-folder-update-group (car entity-list) diffs)
-             (setq entity-list (cdr entity-list)))
+           (let ((entity-list (wl-folder-search-entity-list-by-name
+                               name wl-folder-entity)))
+             (while entity-list
+               (wl-folder-update-group (car entity-list) diffs)
+               (setq entity-list (cdr entity-list))))
            (goto-char (point-min))
            (while (wl-folder-buffer-search-entity name)
              (wl-folder-update-line value))))))))
 
 (defun wl-folder-update-unread (folder unread)
-;  (save-window-excursion
-    (let ((buf (get-buffer wl-folder-buffer-name))
-         cur-unread
-         (unread-diff 0)
-         ;;(fld (elmo-string folder))
-         value newvalue entity-list)
+  (let ((buf (get-buffer wl-folder-buffer-name))
+       (value (wl-folder-get-entity-info folder))
+       cur-unread
+       (unread-diff 0)
+       newvalue)
 ;;; Update folder-info
 ;;;    (elmo-folder-set-info-hashtb fld nil nil nil unread)
-      (setq cur-unread (or (nth 1 (wl-folder-get-entity-info folder)) 0))
-      (setq unread-diff (- (or unread 0) cur-unread))
-      (setq value (wl-folder-get-entity-info folder))
-      (setq newvalue (list (nth 0 value)
-                          unread
-                          (nth 2 value)))
-      (wl-folder-set-entity-info folder newvalue)
-      (setq wl-folder-info-alist-modified t)
-      (when (and buf
-                (not (eq unread-diff 0)))
-       (save-match-data
-         (with-current-buffer buf
-           (save-excursion
-             (setq entity-list (wl-folder-search-entity-list-by-name
-                                folder wl-folder-entity))
+    (setq cur-unread (or (nth 1 value) 0))
+    (setq unread-diff (- (or unread 0) cur-unread))
+    (setq newvalue (list (nth 0 value)
+                        unread
+                        (nth 2 value)))
+    (wl-folder-set-entity-info folder newvalue)
+    (setq wl-folder-info-alist-modified t)
+    (when (and buf
+              (not (eq unread-diff 0)))
+      (save-match-data
+       (with-current-buffer buf
+         (save-excursion
+           (let ((entity-list (wl-folder-search-entity-list-by-name
+                               folder wl-folder-entity)))
              (while entity-list
                (wl-folder-update-group (car entity-list) (list 0
                                                                unread-diff
                                                                0))
-               (setq entity-list (cdr entity-list)))
-             (goto-char (point-min))
-             (while (wl-folder-buffer-search-entity folder)
-               (wl-folder-update-line newvalue))))))));)
+               (setq entity-list (cdr entity-list))))
+           (goto-char (point-min))
+           (while (wl-folder-buffer-search-entity folder)
+             (wl-folder-update-line newvalue))))))))
 
 (defun wl-folder-create-entity-hashtb (entity &optional hashtb reconst)
   (let ((hashtb (or hashtb (elmo-make-hash wl-folder-entity-id)))
@@ -2851,16 +2847,16 @@ Call `wl-summary-write-current-folder' with current folder name."
 
 (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
-       (message "")
-       (setq wl-folder-entity-hashtb
-             (wl-folder-create-entity-hashtb
-              (elmo-folder-name-internal folder)
-              wl-folder-entity-hashtb))
-       (unless (elmo-folder-create folder)
-         (error "Create folder failed")))
+      (if (y-or-n-p (format "Folder %s does not exist, create it? "
+                           (elmo-folder-name-internal folder)))
+         (progn
+           (message "")
+           (setq wl-folder-entity-hashtb
+                 (wl-folder-create-entity-hashtb
+                  (elmo-folder-name-internal folder)
+                  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 does not exist" (elmo-folder-name-internal folder))))