Next: Reading from Files, Previous: Visiting Files, Up: Files [Contents][Index]
When you edit a file in SXEmacs, you are actually working on a buffer that is visiting that file—that is, the contents of the file are copied into the buffer and the copy is what you edit. Changes to the buffer do not change the file until you save the buffer, which means copying the contents of the buffer into the file.
This function saves the contents of the current buffer in its visited file if the buffer has been modified since it was last visited or saved. Otherwise it does nothing.
save-buffer
is responsible for making backup files. Normally,
backup-option is nil
, and save-buffer
makes a backup
file only if this is the first save since visiting the file. Other
values for backup-option request the making of backup files in
other circumstances:
save-buffer
function marks this version of the file to be
backed up when the buffer is next saved.
save-buffer
function unconditionally backs up the previous
version of the file before saving it.
This command saves some modified file-visiting buffers. Normally it
asks the user about each buffer. But if save-silently-p is
non-nil
, it saves all the file-visiting buffers without querying
the user.
The optional exiting argument, if non-nil
, requests this
function to offer also to save certain other buffers that are not
visiting files. These are buffers that have a non-nil
local
value of buffer-offer-save
. (A user who says yes to saving one
of these is asked to specify a file name to use.) The
save-buffers-kill-emacs
function passes a non-nil
value
for this argument.
When this variable is non-nil
in a buffer, SXEmacs offers to save
the buffer on exit even if the buffer is not visiting a file. The
variable is automatically local in all buffers. Normally, Mail mode
(used for editing outgoing mail) sets this to t
.
This function writes the current buffer into file filename, makes
the buffer visit that file, and marks it not modified. Then it renames
the buffer based on filename, appending a string like ‘<2>’
if necessary to make a unique buffer name. It does most of this work by
calling set-visited-file-name
and save-buffer
.
The value of this variable is a list of functions to be called before
writing out a buffer to its visited file. If one of them returns
non-nil
, the file is considered already written and the rest of
the functions are not called, nor is the usual code for writing the file
executed.
If a function in write-file-hooks
returns non-nil
, it
is responsible for making a backup file (if that is appropriate).
To do so, execute the following code:
(or buffer-backed-up (backup-buffer))
You might wish to save the file modes value returned by
backup-buffer
and use that to set the mode bits of the file that
you write. This is what save-buffer
normally does.
Even though this is not a normal hook, you can use add-hook
and
remove-hook
to manipulate the list. See Hooks.
This works just like write-file-hooks
, but it is intended
to be made local to particular buffers. It’s not a good idea to make
write-file-hooks
local to a buffer—use this variable instead.
The variable is marked as a permanent local, so that changing the major mode does not alter a buffer-local value. This is convenient for packages that read “file” contents in special ways, and set up hooks to save the data in a corresponding way.
This works just like write-file-hooks
, but it is intended for
hooks that pertain to the contents of the file, as opposed to hooks that
pertain to where the file came from. Such hooks are usually set up by
major modes, as buffer-local bindings for this variable. Switching to a
new major mode always resets this variable.
This normal hook runs after a buffer has been saved in its visited file.
If this variable is non-nil
, then save-buffer
protects
against I/O errors while saving by writing the new file to a temporary
name instead of the name it is supposed to have, and then renaming it to
the intended name after it is clear there are no errors. This procedure
prevents problems such as a lack of disk space from resulting in an
invalid file.
As a side effect, backups are necessarily made by copying. See Rename or Copy. Yet, at the same time, saving a precious file always breaks all hard links between the file you save and other file names.
Some modes set this variable non-nil
locally in particular
buffers.
This variable determines whether files may be written out that do
not end with a newline. If the value of the variable is
t
, then save-buffer
silently adds a newline at the end of
the file whenever the buffer being saved does not already end in one.
If the value of the variable is non-nil
, but not t
, then
save-buffer
asks the user whether to add a newline each time the
case arises.
If the value of the variable is nil
, then save-buffer
doesn’t add newlines at all. nil
is the default value, but a few
major modes set it to t
in particular buffers.
Next: Reading from Files, Previous: Visiting Files, Up: Files [Contents][Index]