Commit Graph

5033 Commits

Author SHA1 Message Date
nicm
dfcb588029 Only skip collecting text except for right margin when autowrap is off,
from Jang-Ho Hwang.
2026-10-02 19:21:29 +00:00
nicm
a8523db838 Change to the new working directory even if getcwd fails, GitHub issue 5658. 2026-10-02 19:21:29 +00:00
nicm
556235fbe2 Sync redraw should use the given rows not the scroll region now. 2026-10-02 14:10:41 +00:00
nicm
0a1adfa116 Instead of redrawing the entire pane or scene when moving or redrawing a
pane, add damage rectangles and redraw only the affected spans. From
Michael Grant.
2026-10-02 14:10:41 +00:00
nicm
950a7f6631 Do not leak client if lost before configuration is loaded, and do not load
multiple times. GitHub issues 5661 and 5662 from Alexandre Fiori.
2026-10-02 14:10:41 +00:00
nicm
a511a7ab55 Restore the zoom when swap-pane refuses a floating pane, GitHub issue
5660 from Alexandre Fiori.
2026-10-02 14:10:41 +00:00
nicm
5932140d30 Do not use client for copy-mode -S if NULL, reported by Martin Vlach. 2026-10-02 14:10:41 +00:00
nicm
4a98a9dea8 Add NULL checks for clients that may not have identified yet, GitHub
issue 5663.
2026-09-29 23:00:10 +00:00
nicm
c34432980f Do not format times that localtime_r and ctime_r cannot convert, from
Alexandre Fiori.
2026-09-29 19:03:18 +00:00
nicm
1bb90bdd62 Add a maximum repeat size as well as count. 2026-09-29 19:03:18 +00:00
nicm
95aaa6cc2a Do not try to decode UTF-8 if it is too long to match the pattern. 2026-09-28 21:22:21 +00:00
nicm
389908d001 Do not allocate for repeat inside loop but allocate up front and just
copy in the loop.
2026-09-28 21:22:21 +00:00
nicm
5fbfaca6a8 Copy all #s at once when multiple are seen before [ rather than only
copying one at a time which can be very slow.
2026-09-28 17:26:42 +00:00
nicm
c4eb4ab5df Check time every iteration for expensive repeat loop. 2026-09-28 17:26:42 +00:00
nicm
5e5e15f6c7 Use mode screen for cursor not base which may be wrong during
synchronized updates. GitHub issue 5648 from bugreporter23 at gmail dot
com.
2026-09-28 15:30:41 +00:00
nicm
db3950ed07 Do not use subtraction for comparators, this doesn't really matter for
IDs but it breaks key sorting. GitHub issue 5646 from Alexandre Fiori.
2026-09-28 12:05:37 +00:00
nicm
a16e62849d Fix dragging a floating pane by its top border over a tiled pane's
status line, GitHub issue 5645 from Michael Grant.
2026-09-28 12:05:37 +00:00
nicm
bbecdc802f Fix floating panes not being detected as obscuring the pane behind them,
GitHub issue 5641 from Michael Grant.
2026-09-28 12:05:37 +00:00
nicm
884101263e Exit 128 + SIGHUP like popups did if waiting for a pane that was killed,
from Alexandre Fiori.
2026-09-28 12:05:37 +00:00
nicm
86af3c8167 Add a second comparison for key bindings to avoid ties, GitHub issue
5647 from Alexandre Fiori.
2026-09-28 10:25:03 +00:00
nicm
abb1c79886 Bounds check size and offsets for v1 layouts, found by ossfuzz. 2026-09-28 10:25:03 +00:00
nicm
11a0799925 Tighten up TMUX_TMPDIR - do not allow relative paths or .. or if
realpath fails. From Alexandre Fiori.
2026-09-25 23:37:16 +00:00
nicm
7a816f90e7 Discard keys if there is no session, fixes crash reported by Artyom
Pertsovsky.
2026-09-25 17:28:18 +00:00
nicm
d87bd430b9 Fix some indentation. 2026-09-25 12:18:30 +00:00
nicm
f9eb405921 Do not overflow window indexes at INT_MAX in new-window -a and
renumber-windows. GitHub issue 5637 from Alexandre Fiori.
2026-09-25 12:18:30 +00:00
nicm
4ae837de68 Keep the scroll position in tree mode when the list is rebuilt, GitHub
issue 5631 from Kim A Brandt.
2026-09-25 06:40:33 +00:00
nicm
7fc7f1bf69 As well as tracking modified (dirty) lines during a synchronized update,
also track scrolled lines. This means they can be scrolled as one
instead of forcing each line to be redrawn - much less expensive for a
very common operation. From Ben Maurer in GitHub issue 5611.
2026-09-24 12:27:51 +00:00
nicm
aa4123ab58 Add margins for WezTerm and ghostty, from Michael Grant. 2026-09-24 09:44:54 +00:00
nicm
a4c051f27d Note about default-shell, from Meriel Sartha Mittelbach. 2026-09-23 16:48:08 +00:00
nicm
183c3432b0 Get x and y the right way round, fixes crash when opening a mode prompt
when the client is offset into the window; may be the crash reported by
sthen@.
2026-09-22 20:02:40 +00:00
nicm
e7618f41c2 Some terminals have extended DECSCUSR to allow it to reset to the
default style and put that as the Se capability in their terminfo entry.
Change so that if Ss and Se exist, tmux does not overwrite them with its
own. GitHub issue 5476.
2026-09-22 16:48:18 +00:00
nicm
83f62d0acc Add a feature for mintty's application escape to avoid dodgy terminals
whinging about not supporting it, GitHub issue 5626 from Pete Dietl.
2026-09-22 11:58:41 +00:00
nicm
19b7660778 Only rely on the previous line wrapping when the cursor is actually on
it, GitHub issue 5625 from Ben Maurer.
2026-09-22 11:58:41 +00:00
nicm
4624bc2129 Correctly write Z indexes to v2 layouts if zoomed, GitHub issue 5624. 2026-09-22 11:58:41 +00:00
nicm
0e1f6ed80d Do not leak waiting clients (in wait-for) if they are killed, GitHub
issue 5614.
2026-09-22 11:58:41 +00:00
nicm
ca5c28d224 Do not cancel mark when click on border. 2026-09-21 22:31:26 +00:00
nicm
21b3da3bab Do not do anything in session_detach and rely on the caller destroying
the session, otherwise grouped sessions can reuse a session with no
windows. From Jeong, Heon in GitHub issue 5620.
2026-09-21 18:56:55 +00:00
nicm
dda0e4d489 Add support for borderless menus, like panes. GitHub issue 5447 from harikp2002
at gmail dot com.
2026-09-21 13:44:39 +00:00
nicm
e361b8f8ff Do not trim all lines to make a zero line grid which reflow does not like, from
Kaixuan Li.
2026-09-21 13:44:39 +00:00
nicm
9be3a35178 Do not unzoom when resizing a floating pane that was created with -A.
Similarly, skip hidden floating panes when changing Z order. Reported by Clark
Wang.
2026-09-21 13:44:39 +00:00
nicm
34cd5da4e3 Remove popups and all the associated overlay machinery (they were the last user
of it). display-popup stays but becomes an (undocumented) compatibility command
to open a floating pane.
2026-09-21 11:01:12 +00:00
nicm
3d5f946f35 Fix typo (too few 0s) in CLIENT_CONTROL_DISCARD, from someone in GitHub issue
5622.
2026-09-21 11:01:12 +00:00
sthen
56b36d671e build tmux with debug symbols, ok claudio nicm 2026-09-20 12:06:27 +00:00
nicm
eee95e6479 If no floating panes, reset default starting position, and reset if any part of
the pane goes outside the window.
2026-09-20 12:06:27 +00:00
nicm
bbd00148de Empty string for invalid old-style formats causes old iTerm2 versions to crash,
so emit "0000," instead.
2026-09-20 12:06:27 +00:00
nicm
2e9189c01d Fix session_*_flag format variables which loop over the windows (they should
only be false if all windows do not have the flag, not the first one). GitHub
issue 5599.
2026-09-20 12:06:27 +00:00
nicm
d4dc032599 Do not loop forever if someone tries to give WCHAR_MAX a width, GitHub issue
5602.
2026-09-20 12:06:27 +00:00
nicm
d1d07f9790 Expand -c for run-shell like the other -c flags, reported by Saúl Nogueras. 2026-09-20 12:06:27 +00:00
nicm
b25af0a08c Reset layout manually instead of calling window_unzoom which can go down the
notification path and end up double freeing the pane (this was previously
removed in 2015 but added back to fix a problem with late destroy - this is a
better fix). GitHub issue 5591 from Romain Francoise.
2026-09-20 12:06:27 +00:00
nicm
325b40e8c4 Add rounded borders option for panes like popups. 2026-09-11 17:00:18 +00:00