emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/indent.c [emacs-unicode-2]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/src/indent.c [emacs-unicode-2]
Date: Fri, 19 Nov 2004 02:16:29 -0500

Index: emacs/src/indent.c
diff -c emacs/src/indent.c:1.157.2.7 emacs/src/indent.c:1.157.2.8
*** emacs/src/indent.c:1.157.2.7        Thu Nov  4 08:55:31 2004
--- emacs/src/indent.c  Fri Nov 19 06:54:57 2004
***************
*** 2061,2081 ****
        XSETBUFFER (w->buffer, current_buffer);
      }
  
!   SET_TEXT_POS (pt, PT, PT_BYTE);
!   start_display (&it, w, pt);
  
!   /* Move to the start of the display line containing PT.  If we don't
!      do this, we start moving with IT->current_x == 0, while PT is
!      really at some x > 0.  The effect is, in continuation lines, that
!      we end up with the iterator placed at where it thinks X is 0,
!      while the end position is really at some X > 0, the same X that
!      PT had.  */
!   move_it_by_lines (&it, 0, 0);
! 
!   if (XINT (lines) != 0)
!     move_it_by_lines (&it, XINT (lines), 0);
! 
!   SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));
  
    if (BUFFERP (old_buffer))
      w->buffer = old_buffer;
--- 2061,2098 ----
        XSETBUFFER (w->buffer, current_buffer);
      }
  
!   if (noninteractive)
!     {
!       struct position pos;
!       pos = *vmotion (PT, XINT (lines), w);
!       SET_PT_BOTH (pos.bufpos, pos.bytepos);
!     }
!   else
!     {
!       SET_TEXT_POS (pt, PT, PT_BYTE);
!       start_display (&it, w, pt);
! 
!       /* Scan from the start of the line containing PT.  If we don't
!        do this, we start moving with IT->current_x == 0, while PT is
!        really at some x > 0.  The effect is, in continuation lines, that
!        we end up with the iterator placed at where it thinks X is 0,
!        while the end position is really at some X > 0, the same X that
!        PT had.  */
!       reseat_at_previous_visible_line_start (&it);
!       it.current_x = it.hpos = 0;
!       move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
! 
!       /* Move back if we got too far.  This may happen if
!        truncate-lines is on and PT is beyond right margin.  */
!       if (IT_CHARPOS (it) > PT && XINT (lines) > 0)
!       move_it_by_lines (&it, -1, 0);
! 
!       it.vpos = 0;
!       if (XINT (lines) != 0)
!       move_it_by_lines (&it, XINT (lines), 0);
  
!       SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));
!     }
  
    if (BUFFERP (old_buffer))
      w->buffer = old_buffer;




reply via email to

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