]> git.eshelyaron.com Git - emacs.git/commitdiff
(display_line): Fix computation of continuation lines
authorGerd Moellmann <gerd@gnu.org>
Mon, 22 Oct 2001 14:53:30 +0000 (14:53 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 22 Oct 2001 14:53:30 +0000 (14:53 +0000)
width for TABs.

src/ChangeLog
src/xdisp.c

index 91ceccec08042ab50b7e03a63c017bf7136308b5..260ed84445d943aa7ab059b3e7f075ec3a552f36 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-22  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (display_line): Fix computation of continuation lines
+       width for TABs.
+
 2001-10-22  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
 
        * xdisp.c (build_desired_tool_bar_string): Remove unused variable
index 7c96e268db52e170b934463c7e2b97ac9ac2fcfd..522148d1863b7d46b9e72b44790c2d15438639cf 100644 (file)
@@ -12934,18 +12934,20 @@ display_line (it)
                    {
                      /* Display element draws past the right edge of
                         the window.  Restore positions to values
-                        before the element.  The next line starts
-                        with current_x before the glyph that could
-                        not be displayed, so that TAB works right.  */
+                        before the element.  */
                      row->used[TEXT_AREA] = n_glyphs_before + i;
                  
                      /* Display continuation glyphs.  */
                      if (!FRAME_WINDOW_P (it->f))
                        produce_special_glyphs (it, IT_CONTINUATION);
                      row->continued_p = 1;
+
+                     /* A TAB takes us to the right edge of the window.  */
+                     if (it->c == '\t')
+                       it->continuation_lines_width += it->last_visible_x;
+                     else
+                       it->continuation_lines_width += x;
                      
-                     it->current_x = x;
-                     it->continuation_lines_width += x;
                      if (nglyphs > 1 && i > 0)
                        {
                          row->ends_in_middle_of_char_p = 1;