Simplify 'without-restriction'

This simplification is symmetrical to 01fb898420.

* src/editfns.c: (Finternal__labeled_widen): Add a call to
'Fwiden', and rename from 'internal--unlabel-restriction'.
(unwind_labeled_narrow_to_region): Use the renamed function, and
remove the call to 'Fwiden'.
(syms_of_editfns): Rename the symbol.

* lisp/subr.el (internal--without-restriction): Use the renamed
function.

(cherry picked from commit 9e9e11648d)
This commit is contained in:
Gregory Heytings 2023-08-16 15:58:29 +00:00
parent 5bb5590dec
commit 53b5b77010
2 changed files with 11 additions and 10 deletions

View file

@ -4013,8 +4013,9 @@ by `with-restriction' with the same LABEL argument are lifted.
(defun internal--without-restriction (body &optional label) (defun internal--without-restriction (body &optional label)
"Helper function for `without-restriction', which see." "Helper function for `without-restriction', which see."
(save-restriction (save-restriction
(if label (internal--unlabel-restriction label)) (if label
(widen) (internal--labeled-widen label)
(widen))
(funcall body))) (funcall body)))
(defun find-tag-default-bounds () (defun find-tag-default-bounds ()

View file

@ -2684,7 +2684,7 @@ DEFUN ("delete-and-extract-region", Fdelete_and_extract_region,
labeled restriction was entered (which may be a narrowing that was labeled restriction was entered (which may be a narrowing that was
set by the user and is visible on display). This alist is used set by the user and is visible on display). This alist is used
internally by narrow-to-region, internal--labeled-narrow-to-region, internally by narrow-to-region, internal--labeled-narrow-to-region,
widen, internal--unlabel-restriction and save-restriction. For widen, internal--labeled-widen and save-restriction. For
efficiency reasons, an alist is used instead of a buffer-local efficiency reasons, an alist is used instead of a buffer-local
variable: otherwise reset_outermost_restrictions, which is called variable: otherwise reset_outermost_restrictions, which is called
during each redisplay cycle, would have to loop through all live during each redisplay cycle, would have to loop through all live
@ -2860,8 +2860,7 @@ labeled_restrictions_restore (Lisp_Object buf_and_restrictions)
static void static void
unwind_labeled_narrow_to_region (Lisp_Object label) unwind_labeled_narrow_to_region (Lisp_Object label)
{ {
Finternal__unlabel_restriction (label); Finternal__labeled_widen (label);
Fwiden ();
} }
/* Narrow current_buffer to BEGV-ZV with a restriction labeled with /* Narrow current_buffer to BEGV-ZV with a restriction labeled with
@ -2984,7 +2983,7 @@ argument. To gain access to other portions of the buffer, use
DEFUN ("internal--labeled-narrow-to-region", Finternal__labeled_narrow_to_region, DEFUN ("internal--labeled-narrow-to-region", Finternal__labeled_narrow_to_region,
Sinternal__labeled_narrow_to_region, 3, 3, 0, Sinternal__labeled_narrow_to_region, 3, 3, 0,
doc: /* Restrict editing in this buffer to START-END, and label the restriction with LABEL. doc: /* Restrict this buffer to START-END, and label the restriction with LABEL.
This is an internal function used by `with-restriction'. */) This is an internal function used by `with-restriction'. */)
(Lisp_Object start, Lisp_Object end, Lisp_Object label) (Lisp_Object start, Lisp_Object end, Lisp_Object label)
@ -3002,9 +3001,9 @@ This is an internal function used by `with-restriction'. */)
return Qnil; return Qnil;
} }
DEFUN ("internal--unlabel-restriction", Finternal__unlabel_restriction, DEFUN ("internal--labeled-widen", Finternal__labeled_widen,
Sinternal__unlabel_restriction, 1, 1, 0, Sinternal__labeled_widen, 1, 1, 0,
doc: /* If the current restriction is labeled with LABEL, remove its label. doc: /* Remove the current restriction if it is labeled with LABEL, and widen.
This is an internal function used by `without-restriction'. */) This is an internal function used by `without-restriction'. */)
(Lisp_Object label) (Lisp_Object label)
@ -3012,6 +3011,7 @@ This is an internal function used by `without-restriction'. */)
Lisp_Object buf = Fcurrent_buffer (); Lisp_Object buf = Fcurrent_buffer ();
if (EQ (labeled_restrictions_peek_label (buf), label)) if (EQ (labeled_restrictions_peek_label (buf), label))
labeled_restrictions_pop (buf); labeled_restrictions_pop (buf);
Fwiden ();
return Qnil; return Qnil;
} }
@ -4951,7 +4951,7 @@ it to be non-nil. */);
defsubr (&Swiden); defsubr (&Swiden);
defsubr (&Snarrow_to_region); defsubr (&Snarrow_to_region);
defsubr (&Sinternal__labeled_narrow_to_region); defsubr (&Sinternal__labeled_narrow_to_region);
defsubr (&Sinternal__unlabel_restriction); defsubr (&Sinternal__labeled_widen);
defsubr (&Ssave_restriction); defsubr (&Ssave_restriction);
defsubr (&Stranspose_regions); defsubr (&Stranspose_regions);
} }