]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify after adding internal function to enter a labeled restriction
authorGregory Heytings <gregory@heytings.org>
Thu, 6 Jul 2023 17:04:55 +0000 (17:04 +0000)
committerGregory Heytings <gregory@heytings.org>
Thu, 6 Jul 2023 17:14:20 +0000 (17:14 +0000)
* src/editfns.c: (Finternal__labeled_narrow_to_region): Merge the
code of Finternal__label_restriction into this function.
(Finternal__label_restriction): Remove this function.
(syms_of_editfns): Remove the 'outermost-restriction' buffer local
variable, which is not used anymore, and the symbol of
'internal--label-restriction'.
(Fwiden): Remove the call to reset the 'outermost-restriction'
buffer local variable.

src/editfns.c

index 49c5c1f7b2ffe2e87665dfd309c44447cbab23b3..211f1a03beea17ffbd1f7df0bce617147b10a153 100644 (file)
@@ -2682,11 +2682,12 @@ DEFUN ("delete-and-extract-region", Fdelete_and_extract_region,
    records the restriction bounds that were current when the first
    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, widen, internal--label-restriction,
-   internal--unlabel-restriction 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 buffers.  */
+   internally by narrow-to-region, internal--labeled-narrow-to-region,
+   widen, internal--unlabel-restriction 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
+   buffers.  */
 static Lisp_Object labeled_restrictions;
 
 /* Add BUF with its list of labeled RESTRICTIONS in the
@@ -2884,7 +2885,6 @@ To gain access to other portions of the buffer, use
 `without-restriction' with the same label.  */)
   (void)
 {
-  Fset (Qoutermost_restriction, Qnil);
   Lisp_Object buf = Fcurrent_buffer ();
   Lisp_Object label = labeled_restrictions_peek_label (buf);
 
@@ -2981,20 +2981,18 @@ argument.  To gain access to other portions of the buffer, use
   return Qnil;
 }
 
-DEFUN ("internal--label-restriction", Finternal__label_restriction,
-       Sinternal__label_restriction, 1, 1, 0,
-       doc: /* Label the current restriction with LABEL.
+DEFUN ("internal--labeled-narrow-to-region", Finternal__labeled_narrow_to_region,
+       Sinternal__labeled_narrow_to_region, 3, 3, 0,
+       doc: /* Restrict editing in this buffer to START-END, and label the restriction with LABEL.
 
 This is an internal function used by `with-restriction'.  */)
-  (Lisp_Object label)
+  (Lisp_Object start, Lisp_Object end, Lisp_Object label)
 {
   Lisp_Object buf = Fcurrent_buffer ();
-  Lisp_Object outermost_restriction
-    = buffer_local_value (Qoutermost_restriction, buf);
-  /* If internal--label-restriction is ever called without being
-     preceded by narrow-to-region, do nothing.  */
-  if (NILP (outermost_restriction))
-    return Qnil;
+  Lisp_Object outermost_restriction = list3 (Qoutermost_restriction,
+                                            Fpoint_min_marker (),
+                                            Fpoint_max_marker ());
+  Fnarrow_to_region (start, end);
   if (NILP (labeled_restrictions_peek_label (buf)))
     labeled_restrictions_push (buf, outermost_restriction);
   labeled_restrictions_push (buf, list3 (label,
@@ -3003,24 +3001,6 @@ This is an internal function used by `with-restriction'.  */)
   return Qnil;
 }
 
-DEFUN ("internal--labeled-narrow-to-region", Finternal__labeled_narrow_to_region,
-       Sinternal__labeled_narrow_to_region, 3, 3, 0,
-       doc: /* Restrict editing to START-END, and label the restriction with LABEL.
-
-This is an internal function used by `with-restriction'.  */)
-  (Lisp_Object start, Lisp_Object end, Lisp_Object label)
-{
-  /* Record the accessible range of the buffer when narrow-to-region
-     is called, that is, before applying the narrowing.  That
-     information is used only by internal--label-restriction.  */
-  Fset (Qoutermost_restriction, list3 (Qoutermost_restriction,
-                                      Fpoint_min_marker (),
-                                      Fpoint_max_marker ()));
-  Fnarrow_to_region (start, end);
-  Finternal__label_restriction (label);
-  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.
@@ -4875,10 +4855,6 @@ This variable is experimental; email 32252@debbugs.gnu.org if you need
 it to be non-nil.  */);
   binary_as_unsigned = false;
 
-  DEFVAR_LISP ("outermost-restriction", Voutermost_restriction,
-              doc: /* Outermost narrowing bounds, if any.  Internal use only.  */);
-  Voutermost_restriction = Qnil;
-  Fmake_variable_buffer_local (Qoutermost_restriction);
   DEFSYM (Qoutermost_restriction, "outermost-restriction");
   Funintern (Qoutermost_restriction, Qnil);
 
@@ -4973,7 +4949,6 @@ it to be non-nil.  */);
   defsubr (&Sdelete_and_extract_region);
   defsubr (&Swiden);
   defsubr (&Snarrow_to_region);
-  defsubr (&Sinternal__label_restriction);
   defsubr (&Sinternal__labeled_narrow_to_region);
   defsubr (&Sinternal__unlabel_restriction);
   defsubr (&Ssave_restriction);