1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-02 11:21:42 +00:00

* 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.
This commit is contained in:
Chong Yidong 2009-04-04 01:51:58 +00:00
parent 8a01116112
commit 9257072f4f
2 changed files with 15 additions and 22 deletions

View File

@ -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.

View File

@ -115,15 +115,13 @@ the subroutine does not change which buffer is current (unless, of
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 @@ beginning is current again whenever the variable is unbound.
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.