]> git.eshelyaron.com Git - emacs.git/commitdiff
(insert_from_gap): Make it work even if PT != GTP.
authorKenichi Handa <handa@m17n.org>
Wed, 21 Aug 2002 13:07:13 +0000 (13:07 +0000)
committerKenichi Handa <handa@m17n.org>
Wed, 21 Aug 2002 13:07:13 +0000 (13:07 +0000)
src/insdel.c

index 1f3cff6e8fd1e7e37d5744f16a4fb235fa5b5aab..f782a88320d43aaff0f8c4a0ba56d53dccec289d 100644 (file)
@@ -1038,19 +1038,16 @@ insert_1_both (string, nchars, nbytes, inherit, prepare, before_markers)
 }
 \f
 /* Insert a sequence of NCHARS chars which occupy NBYTES bytes
-   starting at GPT_ADDR.  This funciton assumes PT == GPT.  */
+   starting at GPT_ADDR.  */
 
 void
 insert_from_gap (nchars, nbytes)
      register int nchars, nbytes;
 {
-  if (PT != GPT)
-    abort ();
-
   if (NILP (current_buffer->enable_multibyte_characters))
     nchars = nbytes;
 
-  record_insert (PT, nchars);
+  record_insert (GPT, nchars);
   MODIFF++;
 
   GAP_SIZE -= nbytes;
@@ -1065,15 +1062,16 @@ insert_from_gap (nchars, nbytes)
   if (GPT_BYTE < GPT)
     abort ();
 
-  adjust_overlays_for_insert (PT, nchars);
-  adjust_markers_for_insert (PT, PT_BYTE,
-                            PT + nchars, PT_BYTE + nbytes,
+  adjust_overlays_for_insert (GPT, nchars);
+  adjust_markers_for_insert (GPT, GPT_BYTE,
+                            GPT + nchars, GPT_BYTE + nbytes,
                             0);
 
   if (BUF_INTERVALS (current_buffer) != 0)
     offset_intervals (current_buffer, PT, nchars);
 
-  adjust_point (nchars, nbytes);
+  if (GPT - nchars < PT)
+    adjust_point (nchars, nbytes);
 
   CHECK_MARKERS ();
 }