Mercurial > emacs
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)