ptexinfmt.el; Fix last change
[elisp/wanderlust.git] / wl / wl-summary.el
index 83998c4..e0db0b2 100644 (file)
@@ -245,6 +245,7 @@ See also variable `wl-use-petname'."
 (defvar wl-summary-mode-menu-spec
   '("Summary"
     ["Read" wl-summary-read t]
+    ["Edit draft message" wl-summary-reedit :visible (string= (wl-summary-buffer-folder-name) wl-draft-folder)]
     ["Prev page" wl-summary-prev-page t]
     ["Next page" wl-summary-next-page t]
     ["Top"       wl-summary-display-top t]
@@ -292,7 +293,8 @@ See also variable `wl-use-petname'."
      ["Enter the message" wl-summary-jump-to-current-message t]
      ["Pipe message" wl-summary-pipe-message t]
      ["Print message" wl-summary-print-message t]
-     ["View raw message" wl-summary-display-raw t])
+     ["View raw message" wl-summary-display-raw t]
+     )
     ("Thread Operation"
      ["Open or Close" wl-thread-open-close (eq wl-summary-buffer-view 'thread)]
      ["Open all"     wl-thread-open-all (eq wl-summary-buffer-view 'thread)]
@@ -430,6 +432,7 @@ See also variable `wl-use-petname'."
   (define-key wl-summary-mode-map "\C-c\C-n" 'wl-summary-next-buffer)
   (define-key wl-summary-mode-map "H"    'wl-summary-toggle-all-header)
   (define-key wl-summary-mode-map "M"    'wl-summary-toggle-mime)
+  (define-key wl-summary-mode-map "\C-cm" 'wl-summary-toggle-mime-buttons)
   (define-key wl-summary-mode-map "B"    'wl-summary-burst)
   (define-key wl-summary-mode-map "Z"    'wl-status-update)
   (define-key wl-summary-mode-map "#"    'wl-summary-print-message)
@@ -949,13 +952,15 @@ Entering Folder mode calls the value of `wl-summary-mode-hook'."
        (wl-summary-window-scroll-functions))
   (when wl-summary-buffer-window-scroll-functions
     (let ((hook (if wl-on-xemacs 'pre-idle-hook 'window-scroll-functions)))
-      (make-local-hook hook)
+      (if (fboundp 'make-local-hook)
+         (make-local-hook hook))
       (dolist (function wl-summary-buffer-window-scroll-functions)
        (add-hook hook function nil t)))
     (add-hook 'window-size-change-functions
              #'wl-summary-after-resize-function))
   (dolist (hook '(change-major-mode-hook kill-buffer-hook))
-    (make-local-hook hook)
+    (if (fboundp 'make-local-hook)
+       (make-local-hook hook))
     (add-hook hook #'wl-summary-buffer-detach nil t))
   ;; This hook may contain the function `wl-setup-summary' for reasons
   ;; of system internal to accord facilities for the Emacs variants.
@@ -1593,7 +1598,7 @@ If ARG is non-nil, checking is omitted."
                    (widen)
                    (y-or-n-p
                     (format
-                     "Message from %s has %d bytes.  Prefetch it? "
+                     "Message from %s has %s bytes.  Prefetch it? "
                      (concat
                       "[ "
                       (save-match-data
@@ -1609,7 +1614,10 @@ If ARG is non-nil, checking is omitted."
                              'from)
                             "??")))))
                       " ]")
-                     size))))
+                     (do ((size (/ size 1024.0) (/ size 1024.0))
+                          ;; kilo, mega, giga, tera, peta, exa
+                          (post-fixes (list "k" "M" "G" "T" "P" "E") (cdr post-fixes)))
+                         ((< size 1024) (format "%.0f%s" size (car post-fixes))))))))
            (message "")))              ; flush.
        (if force-read
            (save-excursion
@@ -3007,7 +3015,7 @@ The mark is decided according to the FOLDER and STATUS."
       (let ((inhibit-read-only t)
            (buffer-read-only nil))
        (move-to-column wl-summary-buffer-temp-mark-column)
-       (delete-backward-char 1)
+       (delete-char -1)
        (insert mark)))))
 
 (defun wl-summary-next-buffer ()
@@ -3140,7 +3148,7 @@ Return non-nil if the mark is updated"
                  (new-mark (wl-summary-persistent-mark number status)))
              (prog1
                  (unless (string= new-mark mark)
-                   (delete-backward-char 1)
+                   (delete-char -1)
                    (insert new-mark)
                    (wl-summary-set-message-modified)
                    t)
@@ -4743,7 +4751,7 @@ If ARG is numeric number, decode message as following:
   (let ((number (wl-summary-message-number))
        (folder wl-summary-buffer-elmo-folder))
     (if number
-       (let ((raw (elmo-message-fetch-string 
+       (let ((raw (elmo-message-fetch-string
                    folder number
                    (elmo-find-fetch-strategy folder number)))
              (raw-buffer (get-buffer-create "*wl:raw message*"))
@@ -4771,13 +4779,10 @@ If ARG is numeric number, decode message as following:
       (setq wl-save-dir wl-temporary-file-directory))
     (if num
        (save-excursion
-         (setq filename (expand-file-name
-                         (concat (number-to-string num)
-                                 wl-summary-save-file-suffix)
-                         wl-save-dir))
+         (setq filename (concat (number-to-string num) wl-summary-save-file-suffix))
          (when (or (null arg)
                    (file-exists-p filename))
-           (setq filename (read-file-name "Save to file: " filename)))
+           (setq filename (expand-file-name (read-file-name "Save to file: " wl-save-dir nil nil filename))))
          (wl-summary-set-message-buffer-or-redisplay)
          (set-buffer (wl-message-get-original-buffer))
          (when (or arg
@@ -4977,10 +4982,7 @@ If ARG is numeric number, decode message as following:
       (unwind-protect
          (let ((decode-dir wl-temporary-file-directory))
            (if (not wl-prog-uudecode-no-stdout-option)
-               (setq filename (read-file-name "Save to file: "
-                                              (expand-file-name
-                                               (elmo-safe-filename filename)
-                                               wl-temporary-file-directory)))
+               (setq filename (expand-file-name (read-file-name "Save to file: " wl-temporary-file-directory nil nil (elmo-safe-filename))))
              (setq decode-dir
                    (wl-read-directory-name "Save to directory: "
                                            wl-temporary-file-directory))
@@ -5102,6 +5104,13 @@ If ARG is numeric number, decode message as following:
          (wl-message-header-narrowing-toggle)
          (and wpos (set-window-start mwin wpos)))))))
 
+(defun wl-summary-toggle-mime-buttons ()
+  "Toggle visibility of mime buttons."
+  (interactive)
+  (customize-set-value 'mime-view-buttons-visible (not mime-view-buttons-visible))
+  (wl-message-buffer-cache-clean-up)
+  (wl-summary-redisplay))
+
 (require 'product)
 (product-provide (provide 'wl-summary) (require 'wl-version))