]> git.eshelyaron.com Git - emacs.git/commitdiff
(format-write-file): Add optional argument CONFIRM and make it behave
authorLuc Teirlinck <teirllm@auburn.edu>
Mon, 5 Apr 2004 00:52:10 +0000 (00:52 +0000)
committerLuc Teirlinck <teirllm@auburn.edu>
Mon, 5 Apr 2004 00:52:10 +0000 (00:52 +0000)
like the analogous argument to `write-file'.

lisp/format.el

index 09d3e5fa715507559de891a039d4c4abec73418d..525588eeca4f3195ef2a4643c0f97644df5f1643 100644 (file)
@@ -366,11 +366,15 @@ one of the formats defined in `format-alist', or a list of such symbols."
                 (funcall to-fn beg end (current-buffer)))))
          (setq format (cdr format)))))))
 
-(defun format-write-file (filename format)
+(defun format-write-file (filename format &optional confirm)
   "Write current buffer into file FILENAME using some FORMAT.
-Makes buffer visit that file and sets the format as the default for future
+Make buffer visit that file and set the format as the default for future
 saves.  If the buffer is already visiting a file, you can specify a directory
-name as FILENAME, to write a file of the same old name in that directory."
+name as FILENAME, to write a file of the same old name in that directory.
+
+If optional third arg CONFIRM is non-nil, this function asks for
+confirmation before overwriting an existing file.  Interactively,
+confirmation is required unless you supply a prefix argument."
   (interactive
    ;; Same interactive spec as write-file, plus format question.
    (let* ((file (if buffer-file-name
@@ -382,7 +386,7 @@ name as FILENAME, to write a file of the same old name in that directory."
                                  nil nil (buffer-name))))
          (fmt (format-read (format "Write file `%s' in format: "
                                    (file-name-nondirectory file)))))
-     (list file fmt)))
+     (list file fmt (not current-prefix-arg))))
   (let ((old-formats buffer-file-format)
        preserve-formats)
     (dolist (fmt old-formats)
@@ -393,7 +397,7 @@ name as FILENAME, to write a file of the same old name in that directory."
     (dolist (fmt preserve-formats)
       (unless (memq fmt buffer-file-format)
        (setq buffer-file-format (append buffer-file-format (list fmt))))))
-  (write-file filename))
+  (write-file filename confirm))
 
 (defun format-find-file (filename format)
   "Find the file FILENAME using data format FORMAT.