changeset 34203:e55480843a8e

(scrolling_window): Fix code inserting runs in list of all runs. (line_draw_cost): Fix code skipping over spaces at the end of the line when must_write_spaces is not set. (adjust_glyph_matrix): Make sure to initialize local variable window_width.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 05 Dec 2000 13:48:22 +0000
parents 7e6b11aba502
children 10c8428f0fd1
files src/dispnew.c
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/dispnew.c	Tue Dec 05 13:15:19 2000 +0000
+++ b/src/dispnew.c	Tue Dec 05 13:48:22 2000 +0000
@@ -525,7 +525,7 @@
   int header_line_changed_p = 0;
   int header_line_p = 0;
   int left = -1, right = -1;
-  int window_x, window_y, window_width, window_height;
+  int window_x, window_y, window_width = -1, window_height;
 
   /* See if W had a top line that has disappeared now, or vice versa.  */
   if (w)
@@ -679,12 +679,15 @@
      when this function runs.  */
   if (w && matrix == w->current_matrix)
     {
+      if (window_width < 0)
+	window_width = window_box_width (w, -1);
+      
       /* Optimize the case that only the height has changed (C-x 2,
          upper window).  Invalidate all rows that are no longer part
          of the window.  */
       if (!marginal_areas_changed_p
 	  && matrix->window_top_y == XFASTINT (w->top)
-	  && matrix->window_width == window_width)
+	  && matrix->window_width == window_box_width (w, -1))
 	{
 	  i = 0;
 	  while (matrix->rows[i].enabled_p
@@ -1317,7 +1320,7 @@
   if (!must_write_spaces)
     {
       /* Skip from the end over trailing spaces.  */
-      while (end != beg && CHAR_GLYPH_SPACE_P (*end))
+      while (end > beg && CHAR_GLYPH_SPACE_P (*(end - 1)))
 	--end;
 
       /* All blank line.  */      
@@ -4641,7 +4644,7 @@
 	   case.  */
 	for (j = 0; j < nruns && runs[j]->height > run->height; ++j)
 	  ;
-	for (k = nruns; k >= j; --k)
+	for (k = nruns; k > j; --k)
 	  runs[k] = runs[k - 1];
 	runs[j] = run;
 	++nruns;