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

Diff of /emacs/src/xdisp.c

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

revision 1.754.2.31 by miles, Thu Sep 16 00:15:01 2004 UTC revision 1.754.2.32 by miles, Wed Oct 6 05:21:55 2004 UTC
# Line 12404  try_window_reusing_current_matrix (w) Line 12404  try_window_reusing_current_matrix (w)
12404        last_text_row = last_reused_text_row = NULL;        last_text_row = last_reused_text_row = NULL;
12405    
12406        while (it.current_y < it.last_visible_y        while (it.current_y < it.last_visible_y
              && IT_CHARPOS (it) < CHARPOS (start)  
12407               && !fonts_changed_p)               && !fonts_changed_p)
12408          if (display_line (&it))          {
12409            last_text_row = it.glyph_row - 1;            /* If we have reached into the characters in the START row,
12410                 that means the line boundaries have changed.  So we
12411                 can't start copying with the row START.  Maybe it will
12412                 work to start copying with the following row.  */
12413              while (IT_CHARPOS (it) > CHARPOS (start))
12414                {
12415                  /* Advance to the next row as the "start".  */
12416                  start_row++;
12417                  start = start_row->start.pos;
12418                  /* If there are no more rows to try, or just one, give up.  */
12419                  if (start_row == MATRIX_MODE_LINE_ROW (w->current_matrix) - 1
12420                      || w->vscroll || MATRIX_ROW_PARTIALLY_VISIBLE_P (start_row)
12421                      || CHARPOS (start) == ZV)
12422                    {
12423                      clear_glyph_matrix (w->desired_matrix);
12424                      return 0;
12425                    }
12426    
12427                  start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix);
12428                }
12429              /* If we have reached alignment,
12430                 we can copy the rest of the rows.  */
12431              if (IT_CHARPOS (it) == CHARPOS (start))
12432                break;
12433    
12434              if (display_line (&it))
12435                last_text_row = it.glyph_row - 1;
12436            }
12437    
12438        /* A value of current_y < last_visible_y means that we stopped        /* A value of current_y < last_visible_y means that we stopped
12439           at the previous window start, which in turn means that we           at the previous window start, which in turn means that we
# Line 12415  try_window_reusing_current_matrix (w) Line 12441  try_window_reusing_current_matrix (w)
12441        if (it.current_y < it.last_visible_y)        if (it.current_y < it.last_visible_y)
12442          {          {
12443            /* IT.vpos always starts from 0; it counts text lines.  */            /* IT.vpos always starts from 0; it counts text lines.  */
12444            nrows_scrolled = it.vpos;            nrows_scrolled = it.vpos - (start_row - MATRIX_FIRST_TEXT_ROW (w->current_matrix));
12445    
12446            /* Find PT if not already found in the lines displayed.  */            /* Find PT if not already found in the lines displayed.  */
12447            if (w->cursor.vpos < 0)            if (w->cursor.vpos < 0)
12448              {              {
12449                int dy = it.current_y - first_row_y;                int dy = it.current_y - start_row->y;
12450    
12451                row = MATRIX_FIRST_TEXT_ROW (w->current_matrix);                row = MATRIX_FIRST_TEXT_ROW (w->current_matrix);
12452                row = row_containing_pos (w, PT, row, NULL, dy);                row = row_containing_pos (w, PT, row, NULL, dy);
# Line 12440  try_window_reusing_current_matrix (w) Line 12466  try_window_reusing_current_matrix (w)
12466               scroll_run_hook will clear the cursor, and use the               scroll_run_hook will clear the cursor, and use the
12467               current matrix to get the height of the row the cursor is               current matrix to get the height of the row the cursor is
12468               in.  */               in.  */
12469            run.current_y = first_row_y;            run.current_y = start_row->y;
12470            run.desired_y = it.current_y;            run.desired_y = it.current_y;
12471            run.height = it.last_visible_y - it.current_y;            run.height = it.last_visible_y - it.current_y;
12472    
# Line 15335  display_mode_element (it, depth, field_w Line 15361  display_mode_element (it, depth, field_w
15361              Lisp_Object oprops, aelt;              Lisp_Object oprops, aelt;
15362              oprops = Ftext_properties_at (make_number (0), elt);              oprops = Ftext_properties_at (make_number (0), elt);
15363    
15364                /* If the starting string's properties are not what
15365                   we want, translate the string.  Also, if the string
15366                   is risky, do that anyway.  */
15367    
15368              if (NILP (Fequal (props, oprops)) || risky)              if (NILP (Fequal (props, oprops)) || risky)
15369                {                {
15370                  /* If the starting string has properties,                  /* If the starting string has properties,

Legend:
Removed from v.1.754.2.31  
changed lines
  Added in v.1.754.2.32

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