(Narrowing): Get rid of warning about now-fixed save-restriction bug.
This commit is contained in:
parent
96f71a4964
commit
a6d81c937b
1 changed files with 1 additions and 24 deletions
|
@ -1,6 +1,6 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Emacs Lisp Reference Manual.
|
||||
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
|
||||
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file elisp.texi for copying conditions.
|
||||
@setfilename ../info/positions
|
||||
|
@ -911,29 +911,6 @@ restored with temporary narrowing still in effect. If the old point
|
|||
value were outside the limits of the temporary narrowing, this would
|
||||
fail to restore it accurately.
|
||||
|
||||
The @code{save-restriction} special form records the values of the
|
||||
beginning and end of the accessible portion as distances from the
|
||||
beginning and end of the buffer. In other words, it records the amount
|
||||
of inaccessible text before and after the accessible portion.
|
||||
|
||||
This method yields correct results if @var{body} does further narrowing.
|
||||
However, @code{save-restriction} can become confused if the body widens
|
||||
and then makes changes outside the range of the saved narrowing. When
|
||||
this is what you want to do, @code{save-restriction} is not the right
|
||||
tool for the job. Here is what you must use instead:
|
||||
|
||||
@example
|
||||
@group
|
||||
(let ((beg (point-min-marker))
|
||||
(end (point-max-marker)))
|
||||
(unwind-protect
|
||||
(progn @var{body})
|
||||
(save-excursion
|
||||
(set-buffer (marker-buffer beg))
|
||||
(narrow-to-region beg end))))
|
||||
@end group
|
||||
@end example
|
||||
|
||||
Here is a simple example of correct use of @code{save-restriction}:
|
||||
|
||||
@example
|
||||
|
|
Loading…
Add table
Reference in a new issue