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

Reply via email to