comparison lisp/files.el @ 11340:5c97fabe0ab9

(write-file): Default is ask for confirmation only interactively.
author Richard M. Stallman <rms@gnu.org>
date Mon, 10 Apr 1995 04:49:13 +0000
parents 8781025a1418
children eba8070796a4
comparison
equal deleted inserted replaced
11339:ca0aead90c7b 11340:5c97fabe0ab9
1329 (file-exists-p oauto) 1329 (file-exists-p oauto)
1330 (rename-file oauto buffer-auto-save-file-name t))) 1330 (rename-file oauto buffer-auto-save-file-name t)))
1331 (if buffer-file-name 1331 (if buffer-file-name
1332 (set-buffer-modified-p t))) 1332 (set-buffer-modified-p t)))
1333 1333
1334 (defun write-file (filename) 1334 (defun write-file (filename &optional confirm)
1335 "Write current buffer into file FILENAME. 1335 "Write current buffer into file FILENAME.
1336 Makes buffer visit that file, and marks it not modified. 1336 Makes buffer visit that file, and marks it not modified.
1337 If the buffer is already visiting a file, you can specify 1337 If the buffer is already visiting a file, you can specify
1338 a directory name as FILENAME, to write a file of the same 1338 a directory name as FILENAME, to write a file of the same
1339 old name in that directory." 1339 old name in that directory.
1340 If optional second arg CONFIRM is non-nil,
1341 ask for confirmation for overwriting an existing file."
1340 ;; (interactive "FWrite file: ") 1342 ;; (interactive "FWrite file: ")
1341 (interactive 1343 (interactive
1342 (list (if buffer-file-name 1344 (list (if buffer-file-name
1343 (read-file-name "Write file: " 1345 (read-file-name "Write file: "
1344 nil nil nil nil) 1346 nil nil nil nil)
1345 (read-file-name "Write file: " 1347 (read-file-name "Write file: "
1346 (cdr (assq 'default-directory 1348 (cdr (assq 'default-directory
1347 (buffer-local-variables))) 1349 (buffer-local-variables)))
1348 nil nil (buffer-name))))) 1350 nil nil (buffer-name)))
1351 t))
1349 (or (null filename) (string-equal filename "") 1352 (or (null filename) (string-equal filename "")
1350 (progn 1353 (progn
1351 ;; If arg is just a directory, 1354 ;; If arg is just a directory,
1352 ;; use same file name, but in that directory. 1355 ;; use same file name, but in that directory.
1353 (if (and (file-directory-p filename) buffer-file-name) 1356 (if (and (file-directory-p filename) buffer-file-name)
1354 (setq filename (concat (file-name-as-directory filename) 1357 (setq filename (concat (file-name-as-directory filename)
1355 (file-name-nondirectory buffer-file-name)))) 1358 (file-name-nondirectory buffer-file-name))))
1356 (if (file-exists-p filename) 1359 (and confirm
1357 (or (y-or-n-p (format "File `%s' exists; overwrite? " filename)) 1360 (file-exists-p filename)
1358 (error "Canceled"))) 1361 (or (y-or-n-p (format "File `%s' exists; overwrite? " filename))
1362 (error "Canceled")))
1359 (set-visited-file-name filename))) 1363 (set-visited-file-name filename)))
1360 (set-buffer-modified-p t) 1364 (set-buffer-modified-p t)
1361 (save-buffer)) 1365 (save-buffer))
1362 1366
1363 (defun backup-buffer () 1367 (defun backup-buffer ()