]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/normal/menu_entry.c (update_screen): Fix loop condition to
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 2 Jun 2012 12:30:52 +0000 (14:30 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 2 Jun 2012 12:30:52 +0000 (14:30 +0200)
fix partially stale display.

ChangeLog
grub-core/normal/menu_entry.c

index bbd8d4155ebf8ab4aebb7e949a3406703e9a9aba..e48883ae25f1e3326203e85a489cc6df604ea7f2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-02  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/normal/menu_entry.c (update_screen): Fix loop condition to
+       fix partially stale display.
+
 2012-06-02  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/normal/menu_entry.c (backward_char): Use right line for
index f7cb78375e42a4cb1aea681a939eacc78c62e4b0..ac247d3a203fbbe07d96d4c903243453d0dae21c 100644 (file)
@@ -309,12 +309,16 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen,
        {
          int column;
          int off = 0;
+         int full_len;
 
          if (linep >= screen->lines + screen->num_lines)
            break;
 
+         full_len = grub_getstringwidth (linep->buf, linep->buf + linep->len,
+                                         term_screen->term);
+
          for (column = 0;
-              column <= linep->len
+              column <= full_len
                 && y < term_screen->num_entries;
               column += grub_term_entry_width (term_screen->term), y++)
            {