[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp/mail rmailmm.el
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] emacs/lisp/mail rmailmm.el |
Date: |
Tue, 15 Sep 2009 02:33:59 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Glenn Morris <gm> 09/09/15 02:33:58
Modified files:
lisp/mail : rmailmm.el
Log message:
(rmail-mime-save): If file exists, don't try to be clever and add a
suffix to make a unique name, just let the user decide whether or not
to overwrite it. If the input is a directory, write the default
filename to that directory. (Bug#4388)
(rmail-mime-bulk-handler): Ensure the save button's 'directory property
is a filename-as-a-directory.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/mail/rmailmm.el?cvsroot=emacs&r1=1.9&r2=1.10
Patches:
Index: rmailmm.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/mail/rmailmm.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- rmailmm.el 10 Sep 2009 06:18:23 -0000 1.9
+++ rmailmm.el 15 Sep 2009 02:33:58 -0000 1.10
@@ -80,28 +80,25 @@
"Save the attachment using info in the BUTTON."
(let* ((filename (button-get button 'filename))
(directory (button-get button 'directory))
- (data (button-get button 'data)))
- (while (file-exists-p (expand-file-name filename directory))
- (let* ((f (file-name-sans-extension filename))
- (i 1))
- (when (string-match "-\\([0-9]+\\)$" f)
- (setq i (1+ (string-to-number (match-string 1 f)))
- f (substring f 0 (match-beginning 0))))
- (setq filename (concat f "-" (number-to-string i) "."
- (file-name-extension filename)))))
+ (data (button-get button 'data))
+ (ofilename filename))
(setq filename (expand-file-name
(read-file-name (format "Save as (default: %s): " filename)
directory
(expand-file-name filename directory))
directory))
- (when (file-regular-p filename)
- (error (message "File `%s' already exists" filename)))
- (with-temp-file filename
+ ;; If arg is just a directory, use the default file name, but in
+ ;; that directory (copied from write-file).
+ (if (file-directory-p filename)
+ (setq filename (expand-file-name
+ (file-name-nondirectory ofilename)
+ (file-name-as-directory filename))))
+ (with-temp-buffer
(set-buffer-file-coding-system 'no-conversion)
- (insert data))))
+ (insert data)
+ (write-region nil nil filename nil nil nil t))))
-(define-button-type 'rmail-mime-save
- 'action 'rmail-mime-save)
+(define-button-type 'rmail-mime-save 'action 'rmail-mime-save)
;;; Handlers
@@ -154,7 +151,7 @@
(insert-button filename
:type 'rmail-mime-save
'filename filename
- 'directory directory
+ 'directory (file-name-as-directory directory)
'data data)))
(defun test-rmail-mime-bulk-handler ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs/lisp/mail rmailmm.el,
Glenn Morris <=