changeset 102836:a6980029e2a0

* buffers.texi (Current Buffer): Note that the append-to-buffer example is no longer in synch with the latest code. Tie the two examples together.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 04 Apr 2009 01:51:58 +0000
parents f4ed097d6958
children 755512b49931
files doc/lispref/ChangeLog doc/lispref/buffers.texi
diffstat 2 files changed, 15 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/doc/lispref/ChangeLog	Sat Apr 04 01:35:36 2009 +0000
+++ b/doc/lispref/ChangeLog	Sat Apr 04 01:51:58 2009 +0000
@@ -1,5 +1,9 @@
 2009-04-04  Chong Yidong  <cyd@stupidchicken.com>
 
+	* buffers.texi (Current Buffer): Note that the append-to-buffer
+	example is no longer in synch with the latest code.  Tie the two
+	examples together.
+
 	* files.texi (File Attributes): Move note about MS-DOS from
 	Changing Files to File Attributes.
 	(Create/Delete Dirs): Note that mkdir is an alias for this.
--- a/doc/lispref/buffers.texi	Sat Apr 04 01:35:36 2009 +0000
+++ b/doc/lispref/buffers.texi	Sat Apr 04 01:51:58 2009 +0000
@@ -115,15 +115,13 @@
 course, that is the subroutine's purpose).  Therefore, you should
 normally use @code{set-buffer} within a @code{save-current-buffer} or
 @code{save-excursion} (@pxref{Excursions}) form that will restore the
-current buffer when your function is done.  Here is an example, the
-code for the command @code{append-to-buffer} (with the documentation
-string abridged):
+current buffer when your function is done.  Here, as an example, is a
+simplified version of the command @code{append-to-buffer}:
 
 @example
 @group
 (defun append-to-buffer (buffer start end)
-  "Append to specified buffer the text of the region.
-@dots{}"
+  "Append to specified buffer the text of the region."
   (interactive "BAppend to buffer: \nr")
   (let ((oldbuf (current-buffer)))
     (save-current-buffer
@@ -157,30 +155,21 @@
 
   Do not rely on using @code{set-buffer} to change the current buffer
 back, because that won't do the job if a quit happens while the wrong
-buffer is current.  Here is what @emph{not} to do:
+buffer is current.  For instance, in the previous example, it would
+have been wrong to do this:
 
 @example
 @group
-(let (buffer-read-only
-      (obuf (current-buffer)))
-  (set-buffer @dots{})
-  @dots{}
-  (set-buffer obuf))
+  (let ((oldbuf (current-buffer)))
+    (set-buffer (get-buffer-create buffer))
+    (insert-buffer-substring oldbuf start end)
+    (set-buffer oldbuf))
 @end group
 @end example
 
 @noindent
-Using @code{save-current-buffer}, as shown here, handles quitting,
-errors, and @code{throw}, as well as ordinary evaluation.
-
-@example
-@group
-(let (buffer-read-only)
-  (save-current-buffer
-    (set-buffer @dots{})
-    @dots{}))
-@end group
-@end example
+Using @code{save-current-buffer}, as we did, handles quitting, errors,
+and @code{throw}, as well as ordinary evaluation.
 
 @defun current-buffer
 This function returns the current buffer.