current buffer is used.
@end defun
+Sometimes there's a need for modifying buffer in a way that doesn't
+really change its text, like if only its text properties are changed.
+If your program needs to modify a buffer without triggering any hooks
+and features that react to buffer modifications, use the
+@code{with-silent-modifications} macro.
+
+@defmac with-silent-modifications body@dots{}
+Execute @var{body} pretending it does not modify the buffer. This
+includes checking whether the buffer's file is locked (@pxref{File
+Locks}), running buffer modification hooks (@pxref{Change Hooks}),
+etc. Note that if @var{body} actually modifies the buffer text, its
+undo data may become corrupted.
+@end defmac
+
@node Modification Time
@section Buffer Modification Time
@cindex comparing file modification time
buffer but does not copy its properties.
@findex with-silent-modifications
- If you wish to add or remove text properties to a buffer without
-marking the buffer as modified, you can wrap the calls above in the
-@code{with-silent-modifications} macro.
+ If you wish to add text properties to a buffer or remove them
+without marking the buffer as modified, you can wrap the calls above
+in the @code{with-silent-modifications} macro. @xref{Buffer
+Modification}.
@node Property Search
@subsection Text Property Search Functions