Mercurial > emacs
comparison lisp/files.el @ 24832:b772f629b45b
(write-file): When buffer is not already visiting a file,
don't put buffer name in the minibuffer, just make it the default.
Also handle just directory as arg usefully in that case.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Sat, 12 Jun 1999 03:57:37 +0000 |
parents | ece1961bd955 |
children | ccece04c47a1 |
comparison
equal
deleted
inserted
replaced
24831:e16164c4f6a9 | 24832:b772f629b45b |
---|---|
1912 (set-auto-mode t)) | 1912 (set-auto-mode t)) |
1913 (error nil))) | 1913 (error nil))) |
1914 | 1914 |
1915 (defun write-file (filename &optional confirm) | 1915 (defun write-file (filename &optional confirm) |
1916 "Write current buffer into file FILENAME. | 1916 "Write current buffer into file FILENAME. |
1917 Makes buffer visit that file, and marks it not modified. | 1917 This makes the buffer visit that file, and marks it as not modified. |
1918 If the buffer is already visiting a file, you can specify | 1918 |
1919 a directory name as FILENAME, to write a file of the same | 1919 If you specify just a directory name as FILENAME, that means to use |
1920 old name in that directory. | 1920 the default file name but in that directory. You can also yank |
1921 | 1921 the default file name into the minibuffer to edit it, using M-n. |
1922 If optional second arg CONFIRM is non-nil, | 1922 |
1923 ask for confirmation for overwriting an existing file. | 1923 If the buffer is not already visiting a file, the default file name |
1924 for the output file is the buffer name. | |
1925 | |
1926 If optional second arg CONFIRM is non-nil, this function | |
1927 asks for confirmation before overwriting an existing file. | |
1924 Interactively, confirmation is required unless you supply a prefix argument." | 1928 Interactively, confirmation is required unless you supply a prefix argument." |
1925 ;; (interactive "FWrite file: ") | 1929 ;; (interactive "FWrite file: ") |
1926 (interactive | 1930 (interactive |
1927 (list (if buffer-file-name | 1931 (list (if buffer-file-name |
1928 (read-file-name "Write file: " | 1932 (read-file-name "Write file: " |
1929 nil nil nil nil) | 1933 nil nil nil nil) |
1930 (read-file-name "Write file: " | 1934 (read-file-name "Write file: " default-directory |
1931 (cdr (assq 'default-directory | 1935 (expand-file-name |
1932 (buffer-local-variables))) | 1936 (file-name-nondirectory (buffer-name)) |
1933 nil nil (file-name-nondirectory (buffer-name)))) | 1937 default-directory) |
1938 nil nil)) | |
1934 (not current-prefix-arg))) | 1939 (not current-prefix-arg))) |
1935 (or (null filename) (string-equal filename "") | 1940 (or (null filename) (string-equal filename "") |
1936 (progn | 1941 (progn |
1937 ;; If arg is just a directory, | 1942 ;; If arg is just a directory, |
1938 ;; use same file name, but in that directory. | 1943 ;; use the default file name, but in that directory. |
1939 (if (and (file-directory-p filename) buffer-file-name) | 1944 (if (file-directory-p filename) |
1940 (setq filename (concat (file-name-as-directory filename) | 1945 (setq filename (concat (file-name-as-directory filename) |
1941 (file-name-nondirectory buffer-file-name)))) | 1946 (file-name-nondirectory |
1947 (or buffer-file-name (buffer-name)))))) | |
1942 (and confirm | 1948 (and confirm |
1943 (file-exists-p filename) | 1949 (file-exists-p filename) |
1944 (or (y-or-n-p (format "File `%s' exists; overwrite? " filename)) | 1950 (or (y-or-n-p (format "File `%s' exists; overwrite? " filename)) |
1945 (error "Canceled"))) | 1951 (error "Canceled"))) |
1946 (set-visited-file-name filename (not confirm)))) | 1952 (set-visited-file-name filename (not confirm)))) |