# HG changeset patch # User Chong Yidong # Date 1238809918 0 # Node ID a6980029e2a0dd8bf70899fa2f9a70c79be69d9f # Parent f4ed097d6958d3335a825dbf54dda1057af9de56 * 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. diff -r f4ed097d6958 -r a6980029e2a0 doc/lispref/ChangeLog --- 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 + * 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. diff -r f4ed097d6958 -r a6980029e2a0 doc/lispref/buffers.texi --- 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.