Revision: 2791
http://tmux.svn.sourceforge.net/tmux/?rev=2791&view=rev
Author: tcunha
Date: 2012-05-12 14:57:02 +0000 (Sat, 12 May 2012)
Log Message:
-----------
Sync OpenBSD patchset 1107:
Pull CRA out into a separate function and add ERA, from Ailin Nemui.
Modified Paths:
--------------
trunk/tty.c
Modified: trunk/tty.c
===================================================================
--- trunk/tty.c 2012-05-12 14:56:10 UTC (rev 2790)
+++ trunk/tty.c 2012-05-12 14:57:02 UTC (rev 2791)
@@ -44,6 +44,10 @@
void tty_colours_bg(struct tty *, const struct grid_cell *);
int tty_large_region(struct tty *, const struct tty_ctx *);
+void tty_cra_pane(struct tty *,
+ const struct tty_ctx *, u_int, u_int, u_int, u_int, u_int, u_int);
+void tty_era_pane(struct tty *,
+ const struct tty_ctx *, u_int, u_int, u_int, u_int);
void tty_redraw_region(struct tty *, const struct tty_ctx *);
void tty_emulate_repeat(
struct tty *, enum tty_code_code, enum tty_code_code, u_int);
@@ -52,6 +56,8 @@
#define tty_use_acs(tty) \
(tty_term_has(tty->term, TTYC_ACSC) && !((tty)->flags & TTY_UTF8))
+#define tty_use_rect(tty) \
+ (tty->xterm_version > 270)
void
tty_init(struct tty *tty, int fd, char *term)
@@ -690,6 +696,38 @@
}
void
+tty_cra_pane(struct tty *tty, const struct tty_ctx *ctx,
+ u_int t, u_int l, u_int b, u_int r, u_int tt, u_int tl)
+{
+ char tmp[64];
+
+ snprintf(tmp, sizeof tmp,
+ "\033[%u;%u;%u;%u;1;%u;%u;1$v",
+ ctx->yoff + t + 1,
+ ctx->xoff + l + 1,
+ ctx->yoff + b + 1,
+ ctx->xoff + r + 1,
+ ctx->yoff + tt + 1,
+ ctx->xoff + tl + 1);
+ tty_puts(tty, tmp);
+}
+
+void
+tty_era_pane(struct tty *tty, const struct tty_ctx *ctx,
+ u_int t, u_int l, u_int b, u_int r)
+{
+ char tmp[64];
+
+ snprintf(tmp, sizeof tmp,
+ "\033[%u;%u;%u;%u$z",
+ ctx->yoff + t + 1,
+ ctx->xoff + l + 1,
+ ctx->yoff + b + 1,
+ ctx->xoff + r + 1);
+ tty_puts(tty, tmp);
+}
+
+void
tty_cmd_insertcharacter(struct tty *tty, const struct tty_ctx *ctx)
{
struct window_pane *wp = ctx->wp;
@@ -868,7 +906,6 @@
{
struct window_pane *wp = ctx->wp;
struct screen *s = wp->screen;
- char tmp[64];
if (ctx->ocy != ctx->orlower)
return;
@@ -877,16 +914,10 @@
!tty_term_has(tty->term, TTYC_CSR)) {
if (tty_large_region(tty, ctx))
wp->flags |= PANE_REDRAW;
- else if (tty->xterm_version > 270) {
- snprintf(tmp, sizeof tmp,
- "\033[%u;%u;%u;%u;1;%u;%u;1$v",
- ctx->yoff + ctx->orupper + 2,
- ctx->xoff + 1,
- ctx->yoff + ctx->orlower + 1,
- ctx->xoff + screen_size_x(s),
- ctx->yoff + ctx->orupper + 1,
- ctx->xoff + 1);
- tty_puts(tty, tmp);
+ else if (tty_use_rect(tty)) {
+ tty_cra_pane (tty, ctx, ctx->orupper + 1, 0,
+ ctx->orlower, screen_size_x(s) - 1,
+ ctx->orupper, 0);
tty_cmd_clearline(tty, ctx);
} else
tty_redraw_region(tty, ctx);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
tmux-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-cvs