[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel][Patch] qemu console.c
From: |
Stefan Weil |
Subject: |
Re: [Qemu-devel][Patch] qemu console.c |
Date: |
Sat, 27 Jan 2007 19:30:22 +0100 |
User-agent: |
IceDove 1.5.0.9 (X11/20061220) |
> CVSROOT: /sources/qemu
> Module name: qemu
> Changes by: Thiemo Seufer <ths> 07/01/16 23:02:36
>
> Modified files:
> . : console.c
>
> Log message:
> Improved console handling, thanks Stefan Weil.
Here are two additional smaller changes for console.c.
They fix cursor display at end of line and line wrapping.
Please add them to CVS HEAD.
Stefan
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;