emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/bug64391 c52ade305ed 3/3: Symmetrical simplification to exit a l


From: Gregory Heytings
Subject: scratch/bug64391 c52ade305ed 3/3: Symmetrical simplification to exit a labeled restriction
Date: Thu, 6 Jul 2023 13:16:40 -0400 (EDT)

branch: scratch/bug64391
commit c52ade305edf04351045eea66d2bcf74d36a3d3a
Author: Gregory Heytings <gregory@heytings.org>
Commit: Gregory Heytings <gregory@heytings.org>

    Symmetrical simplification to exit a labeled restriction
    
    * 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.
---
 lisp/subr.el  |  4 +++-
 src/editfns.c | 14 +++++++-------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/lisp/subr.el b/lisp/subr.el
index 0b397b7bebf..20722c52948 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -4004,7 +4004,9 @@ are lifted.
 (defun internal--without-restriction (body &optional label)
   "Helper function for `without-restriction', which see."
   (save-restriction
-    (if label (internal--unlabel-restriction label))
+    (if label
+        (internal--labeled-widen label)
+      (widen))
     (widen)
     (funcall body)))
 
diff --git a/src/editfns.c b/src/editfns.c
index 211f1a03bee..3d9c9e2b56b 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -2683,7 +2683,7 @@ DEFUN ("delete-and-extract-region", 
Fdelete_and_extract_region,
    labeled restriction was entered (which may be a narrowing that was
    set by the user and is visible on display).  This alist is used
    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
    variable: otherwise reset_outermost_restrictions, which is called
    during each redisplay cycle, would have to loop through all live
@@ -2859,8 +2859,7 @@ labeled_restrictions_restore (Lisp_Object 
buf_and_restrictions)
 static void
 unwind_labeled_narrow_to_region (Lisp_Object label)
 {
-  Finternal__unlabel_restriction (label);
-  Fwiden ();
+  Finternal__labeled_widen (label);
 }
 
 /* Narrow current_buffer to BEGV-ZV with a restriction labeled with
@@ -3001,9 +3000,9 @@ This is an internal function used by `with-restriction'.  
*/)
   return Qnil;
 }
 
-DEFUN ("internal--unlabel-restriction", Finternal__unlabel_restriction,
-       Sinternal__unlabel_restriction, 1, 1, 0,
-       doc: /* If the current restriction is labeled with LABEL, remove its 
label.
+DEFUN ("internal--labeled-widen", Finternal__labeled_widen,
+       Sinternal__labeled_widen, 1, 1, 0,
+       doc: /* Remove the current restriction if it is labeled with LABEL, and 
widen.
 
 This is an internal function used by `without-restriction'.  */)
   (Lisp_Object label)
@@ -3011,6 +3010,7 @@ This is an internal function used by 
`without-restriction'.  */)
   Lisp_Object buf = Fcurrent_buffer ();
   if (EQ (labeled_restrictions_peek_label (buf), label))
     labeled_restrictions_pop (buf);
+  Fwiden ();
   return Qnil;
 }
 
@@ -4950,7 +4950,7 @@ it to be non-nil.  */);
   defsubr (&Swiden);
   defsubr (&Snarrow_to_region);
   defsubr (&Sinternal__labeled_narrow_to_region);
-  defsubr (&Sinternal__unlabel_restriction);
+  defsubr (&Sinternal__labeled_widen);
   defsubr (&Ssave_restriction);
   defsubr (&Stranspose_regions);
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]