emacs-diffs
[Top][All Lists]
Advanced

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

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


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c [emacs-unicode-2]
Date: Tue, 21 Sep 2004 06:16:06 -0400

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.843.2.22 emacs/src/xdisp.c:1.843.2.23
*** emacs/src/xdisp.c:1.843.2.22        Wed Sep 15 09:00:00 2004
--- emacs/src/xdisp.c   Tue Sep 21 09:34:11 2004
***************
*** 12504,12513 ****
        last_text_row = last_reused_text_row = NULL;
  
        while (it.current_y < it.last_visible_y
-            && IT_CHARPOS (it) < CHARPOS (start)
             && !fonts_changed_p)
!       if (display_line (&it))
!         last_text_row = it.glyph_row - 1;
  
        /* A value of current_y < last_visible_y means that we stopped
         at the previous window start, which in turn means that we
--- 12504,12539 ----
        last_text_row = last_reused_text_row = NULL;
  
        while (it.current_y < it.last_visible_y
             && !fonts_changed_p)
!       {
!         /* If we have reached into the characters in the START row,
!            that means the line boundaries have changed.  So we
!            can't start copying with the row START.  Maybe it will
!            work to start copying with the following row.  */
!         while (IT_CHARPOS (it) > CHARPOS (start))
!           {
!             /* Advance to the next row as the "start".  */
!             start_row++;
!             start = start_row->start.pos;
!             /* If there are no more rows to try, or just one, give up.  */
!             if (start_row == MATRIX_MODE_LINE_ROW (w->current_matrix) - 1
!                 || w->vscroll || MATRIX_ROW_PARTIALLY_VISIBLE_P (start_row)
!                 || CHARPOS (start) == ZV)
!               {
!                 clear_glyph_matrix (w->desired_matrix);
!                 return 0;
!               }
! 
!             start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix);
!           }
!         /* If we have reached alignment,
!            we can copy the rest of the rows.  */
!         if (IT_CHARPOS (it) == CHARPOS (start))
!           break;
! 
!         if (display_line (&it))
!           last_text_row = it.glyph_row - 1;
!       }
  
        /* A value of current_y < last_visible_y means that we stopped
         at the previous window start, which in turn means that we
***************
*** 12515,12526 ****
        if (it.current_y < it.last_visible_y)
        {
          /* IT.vpos always starts from 0; it counts text lines.  */
!         nrows_scrolled = it.vpos;
  
          /* Find PT if not already found in the lines displayed.  */
          if (w->cursor.vpos < 0)
            {
!             int dy = it.current_y - first_row_y;
  
              row = MATRIX_FIRST_TEXT_ROW (w->current_matrix);
              row = row_containing_pos (w, PT, row, NULL, dy);
--- 12541,12552 ----
        if (it.current_y < it.last_visible_y)
        {
          /* IT.vpos always starts from 0; it counts text lines.  */
!         nrows_scrolled = it.vpos - (start_row - MATRIX_FIRST_TEXT_ROW 
(w->current_matrix));
  
          /* Find PT if not already found in the lines displayed.  */
          if (w->cursor.vpos < 0)
            {
!             int dy = it.current_y - start_row->y;
  
              row = MATRIX_FIRST_TEXT_ROW (w->current_matrix);
              row = row_containing_pos (w, PT, row, NULL, dy);
***************
*** 12540,12546 ****
             scroll_run_hook will clear the cursor, and use the
             current matrix to get the height of the row the cursor is
             in.  */
!         run.current_y = first_row_y;
          run.desired_y = it.current_y;
          run.height = it.last_visible_y - it.current_y;
  
--- 12566,12572 ----
             scroll_run_hook will clear the cursor, and use the
             current matrix to get the height of the row the cursor is
             in.  */
!         run.current_y = start_row->y;
          run.desired_y = it.current_y;
          run.height = it.last_visible_y - it.current_y;
  
***************
*** 15435,15440 ****
--- 15461,15470 ----
            Lisp_Object oprops, aelt;
            oprops = Ftext_properties_at (make_number (0), elt);
  
+           /* If the starting string's properties are not what
+              we want, translate the string.  Also, if the string
+              is risky, do that anyway.  */
+ 
            if (NILP (Fequal (props, oprops)) || risky)
              {
                /* If the starting string has properties,




reply via email to

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