diff options
author | Lars Wendler <polynomial-c@gentoo.org> | 2017-01-21 18:23:29 +0100 |
---|---|---|
committer | Lars Wendler <polynomial-c@gentoo.org> | 2017-01-21 18:24:11 +0100 |
commit | 6040e1f56ea5f55bad8f124c104adcaa1b171fa1 (patch) | |
tree | c5daab8a444d77ceade0a7baa2daf2fb1c819389 /app-misc/tmux/files | |
parent | net-misc/dropbear: amd64 stable wrt bug #605560 (diff) | |
download | gentoo-6040e1f56ea5f55bad8f124c104adcaa1b171fa1.tar.gz gentoo-6040e1f56ea5f55bad8f124c104adcaa1b171fa1.tar.bz2 gentoo-6040e1f56ea5f55bad8f124c104adcaa1b171fa1.zip |
app-misc/tmux: Revbump to fix status-right display (bug #606568).
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'app-misc/tmux/files')
-rw-r--r-- | app-misc/tmux/files/tmux-2.3-screen_write_copy-fix.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/app-misc/tmux/files/tmux-2.3-screen_write_copy-fix.patch b/app-misc/tmux/files/tmux-2.3-screen_write_copy-fix.patch new file mode 100644 index 000000000000..b8383274da2a --- /dev/null +++ b/app-misc/tmux/files/tmux-2.3-screen_write_copy-fix.patch @@ -0,0 +1,63 @@ +From 30086e504c8a5389b96b72b81ac8dbefe19e0cf1 Mon Sep 17 00:00:00 2001 +From: nicm <nicm> +Date: Wed, 5 Oct 2016 22:00:29 +0000 +Subject: [PATCH] screen_write_copy tried to be clever and clear the line if it + reached the end of the source, but it was wrong and causes problems that are + only showing up now we are more aggressive about skipping redundant screen + updates. Remove the optimization entirely as more trouble than it is worth to + fix (and it'll have to go when BCE is done anyway). + +--- + screen-write.c | 34 +++++++--------------------------- + 1 file changed, 7 insertions(+), 27 deletions(-) + +diff --git a/screen-write.c b/screen-write.c +index 3977517..3a1fc8c 100644 +--- a/screen-write.c ++++ b/screen-write.c +@@ -394,38 +394,18 @@ screen_write_copy(struct screen_write_ctx *ctx, struct screen *src, u_int px, + { + struct screen *s = ctx->s; + struct grid *gd = src->grid; +- struct grid_line *gl; + struct grid_cell gc; +- u_int xx, yy, cx, cy, ax, bx; ++ u_int xx, yy, cx, cy; + + cx = s->cx; + cy = s->cy; ++ + for (yy = py; yy < py + ny; yy++) { +- gl = &gd->linedata[yy]; +- if (yy < gd->hsize + gd->sy) { +- /* +- * Find start and end position and copy between +- * them. Limit to the real end of the line then use a +- * clear EOL only if copying to the end, otherwise +- * could overwrite whatever is there already. +- */ +- if (px > gl->cellsize) +- ax = gl->cellsize; +- else +- ax = px; +- if (px + nx == gd->sx && px + nx > gl->cellsize) +- bx = gl->cellsize; +- else +- bx = px + nx; +- +- for (xx = ax; xx < bx; xx++) { +- grid_get_cell(gd, xx, yy, &gc); +- screen_write_cell(ctx, &gc); +- } +- if (px + nx == gd->sx && px + nx > gl->cellsize) +- screen_write_clearendofline(ctx); +- } else +- screen_write_clearline(ctx); ++ for (xx = px; xx < px + nx; xx++) { ++ grid_get_cell(gd, xx, yy, &gc); ++ screen_write_cell(ctx, &gc); ++ } ++ + cy++; + screen_write_cursormove(ctx, cx, cy); + } |