mirror of
https://github.com/tmux/tmux.git
synced 2026-08-29 10:01:33 +00:00
aed1209c02b81410d7536ed98f573767f1e7b877
From github.com/darlingm/tmux, branch pr5516-regression-fixes. Adds 9 regression tests covering gaps found in the redraw-damage-rectangles branch: screen-write full/region redraw fallback, same-session window switches, wide-character clipping at damage edges, pane prompts and status lines surviving damage, floating-pane status format refresh, and multi-client damage delivery. redraw-multiclient.sh is adapted here to use ASCII pane borders (pane-border-lines simple) instead of darlingm's original UTF-8 borders: the original reliably "failed" under this test's nested tmux-in-tmux harness (relaying through an outer tmux client) due to that harness mis-rendering a cell that held a multi-byte UTF-8 border character being overwritten by later plain content - confirmed to be a nested-relay artifact, not a real bug, by replaying the identical drag sequence against a real terminal (xterm), where it never reproduces. ASCII borders avoid the artifact; the test still reliably catches the real "damage consumed by only one client" bug it targets (verified by reintroducing that bug and confirming the test fails). The other 8 tests are added verbatim from darlingm's branch. Four of them (popup-drag-status-line.sh, popup-drag-wide-character.sh, popup-drag-pane-prompt.sh, switch-client-redraw.sh) currently FAIL on this branch, since the source fixes they test for have not been merged yet - only the tests are being added here. Co-Authored-By: Michael K. Darling <darlingm@gmail.com> Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Welcome to tmux! tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached. This release runs on OpenBSD, FreeBSD, NetBSD, Linux, macOS and Solaris. * Dependencies tmux depends on libevent 2.x, available from: https://github.com/libevent/libevent/releases/latest It also depends on ncurses, available from: https://invisible-mirror.net/archives/ncurses/ To build tmux, a C compiler (for example gcc or clang), make, pkg-config and a suitable yacc (yacc or bison) are needed. * Installation To build and install tmux from a release tarball, use: $ ./configure && make $ sudo make install tmux can use the utempter library to update utmp(5), if it is installed - run configure with --enable-utempter to enable this. To get and build the latest from version control - note that this requires autoconf, automake and pkg-config: $ git clone https://github.com/tmux/tmux.git $ cd tmux $ sh autogen.sh $ ./configure && make $ sudo make install * Contributing Bug reports, feature suggestions and especially code contributions are most welcome. Please send by email to: tmux-users@googlegroups.com Or open a GitHub issue or pull request. * Documentation For documentation on using tmux, see the tmux.1 manpage. View it from the source tree with: $ nroff -mdoc tmux.1|less A small example configuration is in example_tmux.conf. Other documentation is available in the wiki: https://github.com/tmux/tmux/wiki Also see the tmux FAQ at: https://github.com/tmux/tmux/wiki/FAQ A bash(1) completion file is at: https://github.com/scop/bash-completion/blob/main/completions/tmux For debugging, run tmux with -v and -vv to generate server and client log files in the current directory. * Support The tmux mailing list for general discussion and bug reports is: https://groups.google.com/forum/#!forum/tmux-users Subscribe by sending an email to: tmux-users+subscribe@googlegroups.com * License This file and the CHANGES files are licensed under the ISC license. All other files have a license and copyright notice at their start.
Description
Languages
C
75.8%
Shell
16.1%
Roff
5.9%
Yacc
1%
M4
0.7%
Other
0.4%