changeset 21817:4dbf2af94988

(insert_1_both): Call prepare_to_modify_buffer before moving or making gap. (insert_from_string_1): Don't check max buffer size here.
author Richard M. Stallman <rms@gnu.org>
date Wed, 29 Apr 1998 00:20:14 +0000
parents 4229613c1982
children af741167f81e
files src/insdel.c
diffstat 1 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/insdel.c	Tue Apr 28 23:41:15 1998 +0000
+++ b/src/insdel.c	Wed Apr 29 00:20:14 1998 +0000
@@ -1020,14 +1020,17 @@
   if (NILP (current_buffer->enable_multibyte_characters))
     nchars = nbytes;
 
+  if (prepare)
+    /* Do this before moving and increasing the gap,
+       because the before-change hooks might move the gap
+       or make it smaller.  */
+    prepare_to_modify_buffer (PT, PT, NULL);
+
   if (PT != GPT)
     move_gap_both (PT, PT_BYTE);
   if (GAP_SIZE < nbytes)
     make_gap (nbytes - GAP_SIZE);
 
-  if (prepare)
-    prepare_to_modify_buffer (PT, PT, NULL);
-
   combined_before_bytes
     = count_combining_before (string, nbytes, PT, PT_BYTE);
   combined_after_bytes
@@ -1179,12 +1182,10 @@
       = count_size_as_multibyte (&XSTRING (string)->data[pos_byte],
 				 nbytes);
 
-  /* Make sure point-max won't overflow after this insertion.  */
-  XSETINT (temp, outgoing_nbytes + Z);
-  if (outgoing_nbytes + Z != XINT (temp))
-    error ("Maximum buffer size exceeded");
-
   GCPRO1 (string);
+  /* Do this before moving and increasing the gap,
+     because the before-change hooks might move the gap
+     or make it smaller.  */
   prepare_to_modify_buffer (PT, PT, NULL);
 
   if (PT != GPT)
@@ -1342,6 +1343,9 @@
   if (outgoing_nbytes + Z != XINT (temp))
     error ("Maximum buffer size exceeded");
 
+  /* Do this before moving and increasing the gap,
+     because the before-change hooks might move the gap
+     or make it smaller.  */
   prepare_to_modify_buffer (PT, PT, NULL);
 
   if (PT != GPT)