Buffer Modification
===================
Emacs keeps a flag called the "modified flag" for each buffer, to
record whether you have changed the text of the buffer. This flag is
set to `t' whenever you alter the contents of the buffer, and cleared
to `nil' when you save it. Thus, the flag shows whether there are
unsaved changes. The flag value is normally shown in the mode line
(Note:Mode Line Variables), and controls saving (Note:Saving
Buffers) and auto-saving (Note:Auto-Saving).
Some Lisp programs set the flag explicitly. For example, the
function `set-visited-file-name' sets the flag to `t', because the text
does not match the newly-visited file, even if it is unchanged from the
file formerly visited.
The functions that modify the contents of buffers are described in
Note:Text.
- Function: buffer-modified-p &optional buffer
This function returns `t' if the buffer BUFFER has been modified
since it was last read in from a file or saved, or `nil'
otherwise. If BUFFER is not supplied, the current buffer is
tested.
- Function: set-buffer-modified-p flag
This function marks the current buffer as modified if FLAG is
non-`nil', or as unmodified if the flag is `nil'.
Another effect of calling this function is to cause unconditional
redisplay of the mode line for the current buffer. In fact, the
function `force-mode-line-update' works by doing this:
(set-buffer-modified-p (buffer-modified-p))
- Command: not-modified
This command marks the current buffer as unmodified, and not
needing to be saved. With prefix arg, it marks the buffer as
modified, so that it will be saved at the next suitable occasion.
Don't use this function in programs, since it prints a message in
the echo area; use `set-buffer-modified-p' (above) instead.
- Function: buffer-modified-tick &optional buffer
This function returns BUFFER's modification-count. This is a
counter that increments every time the buffer is modified. If
BUFFER is `nil' (or omitted), the current buffer is used.