@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
-@c 2004, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
+@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/buffers
@node Buffers, Windows, Backups and Auto-Saving, Top
with a temporary buffer as the current buffer. It saves the identity of
the current buffer, creates a temporary buffer and makes it current,
evaluates the @var{body} forms, and finally restores the previous
-current buffer while killing the temporary buffer.
+current buffer while killing the temporary buffer. By default, undo
+information (@pxref{Undo}) is not recorded in the buffer created by
+this macro (but @var{body} can enable that, if needed).
The return value is the value of the last form in @var{body}. You can
return the contents of the temporary buffer by using
Any argument called @var{buffer} must be an actual buffer
object, not a name.
+@cindex hidden buffers
+@cindex buffers without undo information
Buffers that are ephemeral and generally uninteresting to the user
have names starting with a space, so that the @code{list-buffers} and
@code{buffer-menu} commands don't mention them (but if such a buffer
use.
If @var{filename} is @code{nil} or the empty string, that stands for
-``no visited file''. In this case, @code{set-visited-file-name} marks
+``no visited file.'' In this case, @code{set-visited-file-name} marks
the buffer as having no visited file, without changing the buffer's
modified flag.
echo area; use @code{set-buffer-modified-p} (above) instead.
@end deffn
-@c Emacs 19 feature
@defun buffer-modified-tick &optional buffer
This function returns @var{buffer}'s modification-count. This is a
counter that increments every time the buffer is modified. If
The counter can wrap around occasionally.
@end defun
+@defun buffer-chars-modified-tick &optional buffer
+This function returns @var{buffer}'s character-change modification-count.
+Changes to text properties leave this counter unchanged; however, each
+time text is inserted or removed from the buffer, the counter is reset
+to the value that would be returned @code{buffer-modified-tick}.
+By comparing the values returned by two @code{buffer-chars-modified-tick}
+calls, you can tell whether a character change occurred in that buffer
+in between the calls. If @var{buffer} is @code{nil} (or omitted), the
+current buffer is used.
+@end defun
+
@node Modification Time
@comment node-name, next, previous, up
@section Comparison of Modification Time
@end example
The major mode for a newly created buffer is set to Fundamental mode.
-The variable @code{default-major-mode} is handled at a higher level.
-@xref{Auto Major Mode}.
+(The variable @code{default-major-mode} is handled at a higher level;
+see @ref{Auto Major Mode}.) If the name begins with a space, the
+buffer initially disables undo information recording (@pxref{Undo}).
@end defun
@defun generate-new-buffer name