/[emacs]/emacs/src/indent.c
ViewVC logotype

Diff of /emacs/src/indent.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.167 by kfstorm, Tue Nov 16 14:21:37 2004 UTC revision 1.168 by rms, Tue Nov 16 16:58:16 2004 UTC
# Line 2061  whether or not it is currently displayed Line 2061  whether or not it is currently displayed
2061        XSETBUFFER (w->buffer, current_buffer);        XSETBUFFER (w->buffer, current_buffer);
2062      }      }
2063    
2064    SET_TEXT_POS (pt, PT, PT_BYTE);    if (noninteractive)
   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.  */  
   if (XINT (lines) < 0)  
2065      {      {
2066        reseat_at_previous_visible_line_start (&it);        struct position pos;
2067        it.current_x = it.hpos = 0;        pos = *vmotion (PT, XINT (lines), w);
2068        move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);        SET_PT_BOTH (pos.bufpos, pos.bytepos);
       it.vpos = 0;  
2069      }      }
2070    else    else
2071      move_it_by_lines (&it, 0, 0);      {
2072          SET_TEXT_POS (pt, PT, PT_BYTE);
2073          start_display (&it, w, pt);
2074    
2075    if (XINT (lines) != 0)        /* Scan from the start of the line containing PT.  If we don't
2076      move_it_by_lines (&it, XINT (lines), 0);           do this, we start moving with IT->current_x == 0, while PT is
2077             really at some x > 0.  The effect is, in continuation lines, that
2078             we end up with the iterator placed at where it thinks X is 0,
2079             while the end position is really at some X > 0, the same X that
2080             PT had.  */
2081          if (XINT (lines) < 0)
2082            {
2083              reseat_at_previous_visible_line_start (&it);
2084              it.current_x = it.hpos = 0;
2085              move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
2086              it.vpos = 0;
2087            }
2088          else
2089            move_it_by_lines (&it, 0, 0);
2090    
2091    SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));        if (XINT (lines) != 0)
2092            move_it_by_lines (&it, XINT (lines), 0);
2093    
2094          SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));
2095        }
2096    
2097    if (BUFFERP (old_buffer))    if (BUFFERP (old_buffer))
2098      w->buffer = old_buffer;      w->buffer = old_buffer;

Legend:
Removed from v.1.167  
changed lines
  Added in v.1.168

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26