Mercurial > emacs
comparison lisp/files.el @ 21071:39d081df3643
(basic-save-buffer): Use save-current-buffer not save-excursion.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 05 Mar 1998 04:00:53 +0000 |
parents | e99cb5736904 |
children | 0d20aa45f493 |
comparison
equal
deleted
inserted
replaced
21070:f88e08d192a8 | 21071:39d081df3643 |
---|---|
2158 | 2158 |
2159 (defun basic-save-buffer () | 2159 (defun basic-save-buffer () |
2160 "Save the current buffer in its visited file, if it has been modified. | 2160 "Save the current buffer in its visited file, if it has been modified. |
2161 After saving the buffer, run `after-save-hook'." | 2161 After saving the buffer, run `after-save-hook'." |
2162 (interactive) | 2162 (interactive) |
2163 (save-excursion | 2163 (save-current-buffer |
2164 ;; In an indirect buffer, save its base buffer instead. | 2164 ;; In an indirect buffer, save its base buffer instead. |
2165 (if (buffer-base-buffer) | 2165 (if (buffer-base-buffer) |
2166 (set-buffer (buffer-base-buffer))) | 2166 (set-buffer (buffer-base-buffer))) |
2167 (if (buffer-modified-p) | 2167 (if (buffer-modified-p) |
2168 (let ((recent-save (recent-auto-save-p)) | 2168 (let ((recent-save (recent-auto-save-p)) |
2196 (format "%s has changed since visited or saved. Save anyway? " | 2196 (format "%s has changed since visited or saved. Save anyway? " |
2197 (file-name-nondirectory buffer-file-name))) | 2197 (file-name-nondirectory buffer-file-name))) |
2198 (error "Save not confirmed")) | 2198 (error "Save not confirmed")) |
2199 (save-restriction | 2199 (save-restriction |
2200 (widen) | 2200 (widen) |
2201 (and (> (point-max) 1) | 2201 (save-excursion |
2202 (/= (char-after (1- (point-max))) ?\n) | 2202 (and (> (point-max) 1) |
2203 (not (and (eq selective-display t) | 2203 (/= (char-after (1- (point-max))) ?\n) |
2204 (= (char-after (1- (point-max))) ?\r))) | 2204 (not (and (eq selective-display t) |
2205 (or (eq require-final-newline t) | 2205 (= (char-after (1- (point-max))) ?\r))) |
2206 (and require-final-newline | 2206 (or (eq require-final-newline t) |
2207 (y-or-n-p | 2207 (and require-final-newline |
2208 (format "Buffer %s does not end in newline. Add one? " | 2208 (y-or-n-p |
2209 (buffer-name))))) | 2209 (format "Buffer %s does not end in newline. Add one? " |
2210 (save-excursion | 2210 (buffer-name))))) |
2211 (goto-char (point-max)) | 2211 (save-excursion |
2212 (insert ?\n))) | 2212 (goto-char (point-max)) |
2213 (insert ?\n)))) | |
2213 (or (run-hook-with-args-until-success 'write-contents-hooks) | 2214 (or (run-hook-with-args-until-success 'write-contents-hooks) |
2214 (run-hook-with-args-until-success 'local-write-file-hooks) | 2215 (run-hook-with-args-until-success 'local-write-file-hooks) |
2215 (run-hook-with-args-until-success 'write-file-hooks) | 2216 (run-hook-with-args-until-success 'write-file-hooks) |
2216 ;; If a hook returned t, file is already "written". | 2217 ;; If a hook returned t, file is already "written". |
2217 ;; Otherwise, write it the usual way now. | 2218 ;; Otherwise, write it the usual way now. |