properties, just the characters themselves. @xref{Text Properties}.
@end defun
-@defun filter-buffer-substring start end &optional delete
+@defun filter-buffer-substring start end &optional delete noprops
This function passes the buffer text between @var{start} and @var{end}
through the filter functions specified by the variable
@code{buffer-substring-filters}, and returns the value from the last
between @var{start} and @var{end} after copying it, like
@code{delete-and-extract-region}.
-Lisp code should use this function instead of @code{buffer-substring}
+If @var{noprops} is non-@code{nil}, the final string returned does not
+include text properties, while the string passed through the filters
+still includes text properties from the buffer text.
+
+Lisp code should use this function instead of @code{buffer-substring},
+@code{buffer-substring-no-properties},
or @code{delete-and-extract-region} when copying into user-accessible
data structures such as the kill-ring, X clipboard, and registers.
Major and minor modes can add functions to
Most buffers have an @dfn{undo list}, which records all changes made
to the buffer's text so that they can be undone. (The buffers that
don't have one are usually special-purpose buffers for which Emacs
-assumes that undoing is not useful.) All the primitives that modify the
+assumes that undoing is not useful. In particular, any buffer whose
+name begins with a space has its undo recording off by default,
+see @ref{Buffer Names}.) All the primitives that modify the
text in the buffer automatically add elements to the front of the undo
list, which is in the variable @code{buffer-undo-list}.
@item
A cons cell of the form @code{(foreground-color . @var{color-name})} or
@code{(background-color . @var{color-name})}. These elements specify
-just the foreground color or just the background color.
+just the foreground color or just the background color. @xref{Color
+Names}, for the supported forms of @var{color-name}.
@code{(foreground-color . @var{color-name})} is equivalent to
specifying @code{(:foreground @var{color-name})}, and likewise for the
@kindex read-only @r{(text property)}
If a character has the property @code{read-only}, then modifying that
character is not allowed. Any command that would do so gets an error,
-@code{text-read-only}.
+@code{text-read-only}. If the property value is a string, that string
+is used as the error message.
Insertion next to a read-only character is an error if inserting
ordinary text there would inherit the @code{read-only} property due to