Index: console.c =================================================================== RCS file: /sources/qemu/qemu/console.c,v retrieving revision 1.10 diff -u -b -B -w -u -r1.10 console.c --- console.c 16 Jan 2007 23:02:36 -0000 1.10 +++ console.c 27 Jan 2007 15:41:01 -0000 @@ -536,21 +536,24 @@ int y, y1; if (s == active_console) { + int x = s->x; + if (x >= s->width) { + x = s->width - 1; + } y1 = (s->y_base + s->y) % s->total_height; y = y1 - s->y_displayed; if (y < 0) y += s->total_height; if (y < s->height) { - c = &s->cells[y1 * s->width + s->x]; + c = &s->cells[y1 * s->width + x]; if (show) { TextAttributes t_attrib = s->t_attrib_default; t_attrib.invers = !(t_attrib.invers); /* invert fg and bg */ - vga_putcharxy(s->ds, s->x, y, c->ch, &t_attrib); + vga_putcharxy(s->ds, x, y, c->ch, &t_attrib); } else { - vga_putcharxy(s->ds, s->x, y, c->ch, - &(c->t_attrib)); + vga_putcharxy(s->ds, x, y, c->ch, &(c->t_attrib)); } - dpy_update(s->ds, s->x * FONT_WIDTH, y * FONT_HEIGHT, + dpy_update(s->ds, x * FONT_WIDTH, y * FONT_HEIGHT, FONT_WIDTH, FONT_HEIGHT); } } @@ -799,8 +802,10 @@ s->state = TTY_STATE_ESC; break; default: - if (s->x >= s->width - 1) { - break; + if (s->x >= s->width) { + /* line wrap */ + s->x = 0; + console_put_lf(s); } y1 = (s->y_base + s->y) % s->total_height; c = &s->cells[y1 * s->width + s->x]; @@ -808,12 +813,6 @@ c->t_attrib = s->t_attrib; update_xy(s, s->x, s->y); s->x++; -#if 0 /* line wrap disabled */ - if (s->x >= s->width) { - s->x = 0; - console_put_lf(s); - } -#endif break; } break;