Thank you, this fixes it, but only partly (on last master): everything is good, but if switch to another window and back again or select something with my mouse -- problem reappears
On Thu, May 11, 2017 at 9:44 AM, Nicholas Marriott < [email protected]> wrote: > Try this instead please: > > Index: input.c > =================================================================== > RCS file: /cvs/src/usr.bin/tmux/input.c,v > retrieving revision 1.119 > diff -u -p -r1.119 input.c > --- input.c 22 Apr 2017 08:33:28 -0000 1.119 > +++ input.c 11 May 2017 06:43:44 -0000 > @@ -1308,7 +1308,8 @@ input_csi_dispatch(struct input_ctx *ict > } > break; > case INPUT_CSI_ECH: > - screen_write_clearcharacter(sctx, input_get(ictx, 0, 1, > 1)); > + screen_write_clearcharacter(sctx, input_get(ictx, 0, 1, > 1), > + ictx->cell.cell.bg); > break; > case INPUT_CSI_DCH: > screen_write_deletecharacter(sctx, input_get(ictx, 0, 1, > 1), > Index: screen-write.c > =================================================================== > RCS file: /cvs/src/usr.bin/tmux/screen-write.c,v > retrieving revision 1.119 > diff -u -p -r1.119 screen-write.c > --- screen-write.c 29 Apr 2017 21:27:46 -0000 1.119 > +++ screen-write.c 11 May 2017 06:43:44 -0000 > @@ -606,7 +606,7 @@ screen_write_deletecharacter(struct scre > > /* Clear nx characters. */ > void > -screen_write_clearcharacter(struct screen_write_ctx *ctx, u_int nx) > +screen_write_clearcharacter(struct screen_write_ctx *ctx, u_int nx, > u_int bg) > { > struct screen *s = ctx->s; > struct tty_ctx ttyctx; > @@ -623,6 +623,7 @@ screen_write_clearcharacter(struct scree > return; > > screen_write_initctx(ctx, &ttyctx); > + ttyctx.bg = bg; > > grid_view_clear(s->grid, s->cx, s->cy, nx, 1, 8); > > Index: tmux.h > =================================================================== > RCS file: /cvs/src/usr.bin/tmux/tmux.h,v > retrieving revision 1.763 > diff -u -p -r1.763 tmux.h > --- tmux.h 10 May 2017 16:48:36 -0000 1.763 > +++ tmux.h 11 May 2017 06:43:45 -0000 > @@ -1996,7 +1996,7 @@ void screen_write_cursorleft(struct scr > void screen_write_alignmenttest(struct screen_write_ctx *); > void screen_write_insertcharacter(struct screen_write_ctx *, u_int, > u_int); > void screen_write_deletecharacter(struct screen_write_ctx *, u_int, > u_int); > -void screen_write_clearcharacter(struct screen_write_ctx *, u_int); > +void screen_write_clearcharacter(struct screen_write_ctx *, u_int, > u_int); > void screen_write_insertline(struct screen_write_ctx *, u_int, u_int); > void screen_write_deleteline(struct screen_write_ctx *, u_int, u_int); > void screen_write_clearline(struct screen_write_ctx *, u_int); > Index: tty.c > =================================================================== > RCS file: /cvs/src/usr.bin/tmux/tty.c,v > retrieving revision 1.272 > diff -u -p -r1.272 tty.c > --- tty.c 10 May 2017 18:40:13 -0000 1.272 > +++ tty.c 11 May 2017 06:43:45 -0000 > @@ -1019,7 +1019,7 @@ tty_cmd_deletecharacter(struct tty *tty, > void > tty_cmd_clearcharacter(struct tty *tty, const struct tty_ctx *ctx) > { > - tty_attributes(tty, &grid_default_cell, ctx->wp); > + tty_default_attributes(tty, ctx->wp, ctx->bg); > > tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy); > > > > > On Thu, May 11, 2017 at 08:33:20AM +0300, ?????????????? wrote: > > No, this didn't help. Now background for spaces is "random" (it is > > different every other tmux launch) > > I can submit issue on github with logs and all stuff if this is > indeed a > > bug (I haven't done it yet because I found in "Note that TERM inside > tmux > > must be a variant of screen or tmux" in CONTRIBUTING file and with > > TERM=screen-256color the problem doesnt exist) > > On Thu, May 11, 2017 at 12:34 AM, Nicholas Marriott > > <[email protected]> wrote: > > > > I don't know what you are looking at that has tty_reset, but the > problem > > is most likely that ECH should take account of BCE, so it should > call > > tty_default_atttributes instead of tty_attributes. Please try this: > > > > Index: tty.c > > =================================================================== > > RCS file: /cvs/src/usr.bin/tmux/tty.c,v > > retrieving revision 1.272 > > diff -u -p -r1.272 tty.c > > --- tty.cA A A A 10 May 2017 18:40:13 -0000A A A 1.272 > > +++ tty.cA A A A 10 May 2017 21:34:36 -0000 > > @@ -1019,7 +1019,9 @@ tty_cmd_deletecharacter(struct tty *tty, > > A void > > A tty_cmd_clearcharacter(struct tty *tty, const struct tty_ctx *ctx) > > A { > > -A A A A tty_attributes(tty, &grid_default_cell, ctx->wp); > > +A A A A struct window_paneA A A *wp = ctx->wp; > > + > > +A A A A tty_default_attributes(tty, wp, ctx->bg); > > > > A A A A tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy); > > > > On Wed, May 10, 2017 at 10:09:29PM +0300, ?????????????? wrote: > > >A A Hello. > > >A A I have unexpected and annoying (a bit) behaviour > > >A A withA tmux,A visA (https://github.com/martanne/vis)A and 256 > > color > > >A A terminals supporting 'ech' terminfo entry (st-256color (true > > color also), > > >A A xterm-256color). > > >A A visA has status line (just like tmux). > > >A A But when i use st-256color or xterm-256color as TERM, it > prints > > status > > >A A line with spaces on black background while other text is on > gray > > >A A (http://i.imgur.com/DA4VdN5.png). > > >A A - line looks good when I use those terminals without tmux > > >A A - line looks good if i manually remove 'ech' in terminfo of > those > > >A A terminals (or use screen-256color) (setting 'ech@' in > > terminal-overrides > > >A A doesn't help) > > >A A Investigations (btw debugging tmux is very satisfying :D) > lead me > > to > > >A A conclusion that this is because there is a tty_reset right > before > > 'ech' > > >A A command. > > >A A (which is there since this the beginning of > > >A A implementationA > > https://github.com/tmux/tmux/commit/44f8e1caffce2e887682c3314ee22b > ecc09e1d3cA > > and > > >A A is inside tty_attributes in master) > > >A A When I comment call to tty_attributes inside > > tty_cmd_clearcharacter (or > > >A A use &tty->last_cell instead of grid_default_cell as 2nd > argument) > > >A A everything becomes fine too (didn't fully understand wtf i > was > > doing > > >A A actually) > > >A A From man terminfo: > > >A A A A command to erase n characters (equivalent to outputting n > > blanks > > >A A without moving the cursor) can be given asA echA with one > > parameter. > > >A A So I am wondering if this is a bug in tmux and if not, could > > someone > > >A A clarify this for me: Why do we need tty_reset there? > > >A A BR, > > >A A Evgeniy Stratonikov > > > > > >A A -- > > >A A You received this message because you are subscribed to the > > Google Groups > > >A A "tmux-users" group. > > >A A To unsubscribe from this group and stop receiving emails > from it, > > send an > > >A A email to [email protected]. > > >A A To post to this group, send email to > [email protected]. > > >A A For more options, visit https://groups.google.com/d/optout. > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "tmux-users" group. > > To unsubscribe from this group and stop receiving emails from it, > send an > > email to [email protected]. > > To post to this group, send email to [email protected]. > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "tmux-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
