mirror of
https://github.com/tmux/tmux.git
synced 2026-07-22 08:51:17 +00:00
c3e38b317d47c667e9132b5f2785cf71cb4b92c4
Following up on the comment on #5365 - this drops fgetln from prompt-history.c (its only remaining caller) in favor of getline, and removes the fgetln compat shim entirely since nothing references it anymore: the compat.h declaration, compat/fgetln.c itself, and its entry in configure.ac's AC_REPLACE_FUNCS list. fgetln doesn't null-terminate its returned buffer when the final line in the file lacks a trailing newline, so the old loop had a second branch to heap-copy and manually terminate that case. getline always null-terminates regardless, so that branch goes away and the loop becomes uniform. Verified with a real build (ubuntu-24.04 container, same --enable-utf8proc --enable-asan configure CI uses): crafted a history file with a normal entry, a blank line, and a final entry with no trailing newline at EOF (the exact case the removed branch existed for), loaded it through a real ASan-built tmux via show-prompt-history, all three entries came back correctly. Full regress suite is otherwise clean against this change.
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
76.8%
Shell
15%
Roff
6%
Yacc
1%
M4
0.6%
Other
0.5%