Update copyright for years from Emacs 21 to present (mainly adding
[bpt/emacs.git] / lispref / buffers.texi
index 30031a1..a0c2d1a 100644 (file)
@@ -1,7 +1,7 @@
 @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
@@ -233,7 +233,9 @@ The @code{with-temp-buffer} macro evaluates the @var{body} forms
 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
@@ -257,6 +259,8 @@ sort, and an error is signaled if it is neither a string nor a buffer.
 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
@@ -480,7 +484,7 @@ correspond to the new file name, unless the new name is already in
 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.
 
@@ -569,7 +573,6 @@ Don't use this function in programs, since it prints a message in the
 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
@@ -577,6 +580,17 @@ 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
@@ -908,8 +922,9 @@ nor a buffer.
 @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