1
0
mirror of https://github.com/djcb/mu.git synced 2024-06-21 06:56:48 +02:00

Better dialog to save attachments.

This commit replaces the call to `read-directory-name' by a call to
`read-file-name' when asking the user about the target location for
saving an attachment. This new dialog is better suited because:

1/ the user is currently saving a file, not a directory: he might want
   to complete over existing files (e.g., to replace an existing file
   with a new one just received).

2/ the current dialog was asking for a directory but then, if the user
   enters a directory, mu4e proposes him to "override" the directory
   with a file. This is not going to work obviously. In the new dialog,
   it is also possible to enter a directory name instead of a file name.
   In this case, a new file is created under the chosen directory name.
This commit is contained in:
Damien Cassou 2013-12-10 14:54:42 +01:00
parent b44be2fcd8
commit 6e790ba610

View File

@ -905,15 +905,27 @@ If ATTNUM is nil ask for the attachment number."
(index (plist-get att :index))
(retry t) (fpath))
(while retry
(setq fpath (expand-file-name
(read-directory-name
(mu4e-format "Save as ") path nil nil fname)))
(setq fpath (mu4e-view-request-attachment-path fname path))
(setq retry
(and (file-exists-p fpath)
(not (y-or-n-p (mu4e-format "Overwrite '%s'?" fpath))))))
(mu4e~proc-extract
'save (mu4e-message-field msg :docid) index fpath)))
(defun mu4e-view-request-attachment-path (fname path)
"Ask the user where to save FNAME (default is PATH/FNAME)."
(let ((fpath (expand-file-name
(read-file-name
(mu4e-format "Save as ")
path
nil
nil
fname)
path)))
(if (file-directory-p fpath)
(expand-file-name fname fpath)
fpath)))
(defun mu4e-view-save-attachment-multi (&optional msg)
"Offer to save multiple email attachments from the current message.
Default is to save all messages, [1..n], where n is the number of