emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/editfns.c


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/src/editfns.c
Date: Thu, 26 Jun 2003 19:17:13 -0400

Index: emacs/src/editfns.c
diff -c emacs/src/editfns.c:1.357 emacs/src/editfns.c:1.358
*** emacs/src/editfns.c:1.357   Sat May 17 14:47:04 2003
--- emacs/src/editfns.c Thu Jun 26 19:17:13 2003
***************
*** 868,874 ****
    /* Point marker.  */
    tem = XCAR (info);
    Fgoto_char (tem);
!   unchain_marker (tem);
  
    /* Mark marker.  */
    info = XCDR (info);
--- 868,874 ----
    /* Point marker.  */
    tem = XCAR (info);
    Fgoto_char (tem);
!   unchain_marker (XMARKER (tem));
  
    /* Mark marker.  */
    info = XCDR (info);
***************
*** 876,882 ****
    omark = Fmarker_position (current_buffer->mark);
    Fset_marker (current_buffer->mark, tem, Fcurrent_buffer ());
    nmark = Fmarker_position (tem);
!   unchain_marker (tem);
  
    /* visible */
    info = XCDR (info);
--- 876,882 ----
    omark = Fmarker_position (current_buffer->mark);
    Fset_marker (current_buffer->mark, tem, Fcurrent_buffer ());
    nmark = Fmarker_position (tem);
!   unchain_marker (XMARKER (tem));
  
    /* visible */
    info = XCDR (info);
***************
*** 3814,3820 ****
       register int start1_byte, end1_byte, start2_byte, end2_byte;
  {
    register int amt1, amt1_byte, amt2, amt2_byte, diff, diff_byte, mpos;
!   register Lisp_Object marker;
  
    /* Update point as if it were a marker.  */
    if (PT < start1)
--- 3814,3820 ----
       register int start1_byte, end1_byte, start2_byte, end2_byte;
  {
    register int amt1, amt1_byte, amt2, amt2_byte, diff, diff_byte, mpos;
!   register struct Lisp_Marker *marker;
  
    /* Update point as if it were a marker.  */
    if (PT < start1)
***************
*** 3849,3858 ****
    amt1_byte = (end2_byte - start2_byte) + (start2_byte - end1_byte);
    amt2_byte = (end1_byte - start1_byte) + (start2_byte - end1_byte);
  
!   for (marker = BUF_MARKERS (current_buffer); !NILP (marker);
!        marker = XMARKER (marker)->chain)
      {
!       mpos = marker_byte_position (marker);
        if (mpos >= start1_byte && mpos < end2_byte)
        {
          if (mpos < end1_byte)
--- 3849,3857 ----
    amt1_byte = (end2_byte - start2_byte) + (start2_byte - end1_byte);
    amt2_byte = (end1_byte - start1_byte) + (start2_byte - end1_byte);
  
!   for (marker = BUF_MARKERS (current_buffer); marker; marker = marker->next)
      {
!       mpos = marker->bytepos;
        if (mpos >= start1_byte && mpos < end2_byte)
        {
          if (mpos < end1_byte)
***************
*** 3861,3869 ****
            mpos += diff_byte;
          else
            mpos -= amt2_byte;
!         XMARKER (marker)->bytepos = mpos;
        }
!       mpos = XMARKER (marker)->charpos;
        if (mpos >= start1 && mpos < end2)
        {
          if (mpos < end1)
--- 3860,3868 ----
            mpos += diff_byte;
          else
            mpos -= amt2_byte;
!         marker->bytepos = mpos;
        }
!       mpos = marker->charpos;
        if (mpos >= start1 && mpos < end2)
        {
          if (mpos < end1)
***************
*** 3873,3879 ****
          else
            mpos -= amt2;
        }
!       XMARKER (marker)->charpos = mpos;
      }
  }
  
--- 3872,3878 ----
          else
            mpos -= amt2;
        }
!       marker->charpos = mpos;
      }
  }
  




reply via email to

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