[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lost] [Patch] vterm: vt100-Emulation
Am Samstag, 2. August 2008 21:29:16 schrieb Antoine Kaufmann:
> + vterm: In vt100-Emulation verhindern, dass der Cursor ueber den
> Bildschirmrand hinausgesetzt wird
> + vterm: reversed video mode aktivieren mit <ESC>[7;
> + vterm: Tabulatoren richtig anzeigen
> +static void vt100_safe_curpos(vterminal_t* vterm, int x, int y)
> +{
> + vterm_output_t* out = &(vterm->output);
> + int x_max = out->screen_width - 1;
> + int y_max = out->screen_height - 1;
> + position_t screen_pos;
> + position_t buffer_pos;
> +
> + // Raender Oben und Links pruefen
> + if (x < 0) {
> + x = 0;
> + }
> + if (y < 0) {
> + y = 0;
> + }
> +
> + // Unten und Rechts
> + if (x > x_max) {
> + x = x_max;
> + }
> + if (y > y_max) {
> + y = y_max;
> + }
> +
> + buffer_position(out, screen_pos, &buffer_pos);
> +
> + // In positionstruktur einfuellen
> + screen_pos.line = y;
> + screen_pos.column = x;
> +
> + buffer_position(out, screen_pos, &buffer_pos);
> + output_set_position(out, buffer_pos.line, buffer_pos.column);
> +}
Das erste buffer_position erscheint mir überflüssig
> @@ -552,10 +589,17 @@ static void vt100_clear_screen(vterminal
> int n1, int n2)
> {
> vterm_output_t* out = &(vterm->output);
> + position_t screen_pos;
> +
> + screen_position(out, out->buffer_pos, &screen_pos);
>
> // Anzahl der uebrigen Zeichen
> - size_t count = (out->screen_height - out->buffer_pos.line) * out->
> - screen_width - out->buffer_pos.column;
> + size_t count = (out->screen_height - screen_pos.line) * out->
> + screen_width - screen_pos.column;
> +
> + FILE* oldsin = stdout; stdout = NULL;
> + printf("\nClear count: %d\n", count);
> + stdout = oldsin;
Debugcode?
Ansonsten rein damit. Ich habe zwar keine Ahnung von vterm, aber du wirst es
ja schon ausprobiert haben...