Summary: | sysutils/tmux patch breaks backspace in tmux command mode | ||||||
---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Brandon Low <lostlogic> | ||||
Component: | Individual Port(s) | Assignee: | Wen Heping <wen> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Only Me | ||||||
Priority: | Normal | ||||||
Version: | Latest | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Attachments: |
|
Description
Brandon Low
2011-01-13 01:30:08 UTC
Here's an email that I received from the maintainer of tmux about this issue, indicating that it should be safe to remove the patch nowadays: the reason they did that is because at least some freebsd versions have xterm etc generate ^H by default and have ^H as verase in termios (stty) tmux always sends ^? as backspace to programs inside, but earlier versions did not change the termios inside to set verase to ^? new versions do, so outside can have verase=^H, tmux will detect that is backspace (from termios) and translate it to ^? inside as well as setting verase to ^? in new windows so applications inside tmux use the right thing this is all because terminfo kbs is too unreliable and so many applications just blindly accept ^? anyway since your terminal on freebsd sends ^? (and termios is ^? too) either you're using a terminal which uses that by default, you changed the xterm deleteIsDEL property (like everyone else does), or freebsd changed their default Brandon Low <lostlogic@lostlogicx.com> writes: > Here's an email that I received from the maintainer of tmux about this > issue, indicating that it should be safe to remove the patch nowadays: > > the reason they did that is because at least some freebsd versions have > xterm etc generate ^H by default and have ^H as verase in termios (stty) > > tmux always sends ^? as backspace to programs inside, but earlier > versions did not change the termios inside to set verase to ^? > > new versions do, so outside can have verase=^H, tmux will detect that is > backspace (from termios) and translate it to ^? inside as well as And this magic translation has a bug, you can't disable it. Run from inside tmux $ stty erase '^H' then try to use backspace key or Ctrl-H in ncurses apps. It'd still produce '^?'. That's because there's actually no way to type '^H'. Any other erase character would work fine. > setting verase to ^? in new windows so applications inside tmux use the > right thing > > this is all because terminfo kbs is too unreliable and so many > applications just blindly accept ^? anyway '^H' is also a valid character for Ctrl-H. Without tty-keys.c patch there is one keycode less as both Ctrl-H and Ctrl-? produce '^?'. And any (default) keybinding with '^H' doesn't work. > > since your terminal on freebsd sends ^? (and termios is ^? too) either > you're using a terminal which uses that by default, you changed the > xterm deleteIsDEL property (like everyone else does), or freebsd changed > their default Responsible Changed From-To: freebsd-ports-bugs->wen Fix synopsis and assign. State Changed From-To: open->closed Committed, with minor changes. Thanks! |