emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: nex-line dumps core


From: Richard Stallman
Subject: Re: nex-line dumps core
Date: Tue, 16 Nov 2004 11:49:59 -0500

Does this fix give good results?

*** indent.c    13 Nov 2004 23:17:16 -0500      1.166
--- indent.c    16 Nov 2004 10:04:40 -0500      
***************
*** 2061,2084 ****
        XSETBUFFER (w->buffer, current_buffer);
      }
  
!   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);
!   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;
--- 2061,2093 ----
        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);
!       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]