Commit Graph

142 Commits (0679eb6a6d6bab129264784009e70333b34ca6a8)

Author SHA1 Message Date
Nicholas Marriott 44dccf7ea2 Do not test client flags against TTY_FREEZE bit, reported by Tom Ryder. 2012-09-29 06:57:56 +00:00
Nicholas Marriott b433886840 We can't tell what the terminal has done with a DCS string, so reset the
cursor and attributes afterwards.
2012-09-05 09:59:41 +00:00
Nicholas Marriott 6307d63715 Remove xterm CRA support - support is patchy and it will be done better
using margins.
2012-09-03 15:47:40 +00:00
Nicholas Marriott f61fc576d9 Tidy up tty_write, from Sean Estabrooks. 2012-08-14 08:58:25 +00:00
Nicholas Marriott df912e3540 xfree is not particularly helpful, remove it. From Thomas Adam. 2012-07-10 11:53:01 +00:00
Nicholas Marriott a7917430d8 Remove a couple of unused variables from redbrain at gcc dot gnu dot org. 2012-06-20 12:55:55 +00:00
Nicholas Marriott 84c708f355 Store client in tty struct directly instead of using a callback function
pointer.
2012-05-22 14:32:28 +00:00
Nicholas Marriott 82b053a811 Use tty_pane_full_width macro in some more places. 2012-05-22 09:37:54 +00:00
Nicholas Marriott 2f93affb98 If there are any terminals with insert mode but not ich1, they can go
through the slow path. Tidies code slightly.
2012-05-22 09:36:12 +00:00
Nicholas Marriott 243d12752c Move some common code to repeat spaces into a function. 2012-05-22 09:09:16 +00:00
Nicholas Marriott 96a34a0c0a Tidy up by adding a macro for the pane being the full screen width, from
Ailin Nemui.
2012-05-05 18:45:55 +00:00
Nicholas Marriott 132403b6be Missing ()s in macros. 2012-05-05 18:31:09 +00:00
Nicholas Marriott 3e6454f2d6 Pull CRA out into a separate function and add ERA, from Ailin Nemui. 2012-05-05 18:17:59 +00:00
Nicholas Marriott f59971276a Add a simple form of output rate limiting by counting the number of
certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
exceeds a threshold (current default 50/millisecond), start to redraw
the pane every 100 milliseconds instead of making each change as it
comes. Two configuration options - c0-change-trigger and
c0-change-interval.

This makes tmux much more responsive under very fast output (for example
yes(1) or accidentally cat'ing a large file) but may not be perfect on
all terminals and connections - feedback very welcome, particularly
where this change has a negative rather than positive effect (making it
off by default is a possibility).

After much experimentation based originally on a request Robin Lee
Powell (which ended with a completely different solution), this idea
from discussion with Ailin Nemui.
2012-03-20 11:01:00 +00:00
Nicholas Marriott d8805af66b On xterm 271 and later, put the terminal into SCL 5 and use DECCRA for
scrolling the region in panes (if the large region check isn't
hit). With help from Ailin Nemui.
2012-03-17 22:56:04 +00:00
Nicholas Marriott 889fe42e11 Break out termios initialization into a separate function, from George
Nachman.
2012-03-17 21:27:51 +00:00
Nicholas Marriott 164e85cca7 Do not clear to end of line if the line is full, fixes missing last
character in rightmost pane.
2012-03-17 19:29:46 +00:00
Nicholas Marriott 0b34fefe6e Use the region lower not the pane size to work out where the bottom line
is.
2012-03-17 19:18:37 +00:00
Nicholas Marriott 928f40615c Tweak last fix to actually hit the right end of pane. 2012-03-17 18:51:50 +00:00
Nicholas Marriott d3c842d367 Check event_initialized before event_del if event may not have been set
up; libevent2 complains about this. Reported by Moriyoshi Koizumi.
2012-03-17 18:24:07 +00:00
Nicholas Marriott 0489213b1b Revert screen-write.c r1.54 and fix the bug properly. After wrapping a
line in a pane, the cursor needs to move to the next line unless it
scrolled.
2012-03-17 17:36:03 +00:00
Nicholas Marriott c8c0d68128 Send secondary DA to terminals with XT in terminfo when starting up and
parse it to work out the xterm version.
2012-03-15 10:36:00 +00:00
Nicholas Marriott 005566f915 Fix a warning. Doh. 2012-03-15 09:22:31 +00:00
Nicholas Marriott 698361ccde Add a helper function for enabling an optimization to make some code
clearer.
2012-03-15 09:10:33 +00:00
Nicholas Marriott 575bfa4b4b Erm, use EL in a way that actually works... 2012-03-12 12:43:18 +00:00
Nicholas Marriott 31ddae7735 Use EL to clear to end of line if possible. 2012-03-12 12:38:42 +00:00
Nicholas Marriott 799f437eff Remove some bits leftover from unused backoff code. 2012-03-09 21:42:13 +00:00
Nicholas Marriott f4fdddc930 Support "bracketed paste" mode. This adds a -p flag to paste-buffer - if
this is used and the application has requested bracketed pastes, then
tmux surrounds the pasted text by \033[200~ and \033[201~. Applications
like vim can (apparently) use this to avoid, for example, indenting the
text. From Ailin Nemui.
2012-03-03 09:43:22 +00:00
Nicholas Marriott fddbd44c18 Add a wrapper function tty_set_size from George Nachman. 2012-02-15 17:25:02 +00:00
Nicholas Marriott 230d0fbc9e Add an option to move the status line to the top of the screen,
requested by many.
2012-01-29 09:37:02 +00:00
Nicholas Marriott 7f24020cbe Add strings to allow the aixterm bright colours to be used when
configuring colours, requested by Elliott Cable a few months ago.
2012-01-21 08:23:12 +00:00
Nicholas Marriott 299a8fd4a3 Calculate last position correctly for UTF-8 wide characters, reported by
Matthias Lederhofer.
2012-01-15 19:39:42 +00:00
Nicholas Marriott 029c34ce6b Add a tty_bell wrapper function, from Dylan Alex Simon. 2011-08-24 09:58:44 +00:00
Nicholas Marriott 34e5ec1807 Trim another useless if statement, from Ailin Nemui. 2011-05-26 07:08:48 +00:00
Nicholas Marriott 3ea5e06bfb Support DECSCUSR sequence to set the cursor style with two new
terminfo(5) extensions, Cs and Csr. Written by Ailin Nemui.
2011-05-20 19:17:39 +00:00
Nicholas Marriott 944b5e6fa0 Support xterm(1) cursor colour change sequences through terminfo(5) Cc
(set) and Cr (reset) extensions. Originally by Sean Estabrooks, tweaked
by me and Ailin Nemui.
2011-05-20 19:03:58 +00:00
Nicholas Marriott 96e7f33da3 Support setting the xterm clipboard when copying from copy mode using
the xterm escape sequence for the purpose (if xterm is configured to
allow it).

Written by and much discussed Ailin Nemui, guidance on
xterm/termcap/terminfo from Thomas Dickey.
2011-05-18 20:24:29 +00:00
Nicholas Marriott 295ace6820 Use the tsl and fsl terminfo(5) capabilities to update terminal title
and automatically fill them in on terminals with the XT capability
(which means their title setting is xterm-compatible). From hsim at
gmx.li.
2011-05-08 19:53:06 +00:00
Nicholas Marriott 0a09d04e1b If the terminal supports sitm for italics, use it instead of standout
(smso). From Tiago Resende.
2011-04-09 07:48:08 +00:00
Nicholas Marriott 71e8e26ccc Set the terminal blocking again earlier, before sending the reset
sequences.
2011-03-27 20:36:19 +00:00
Nicholas Marriott d74e5bffba Fix to properly wrap wide characters, from Micah Cowan. 2011-03-26 19:07:33 +00:00
Nicholas Marriott 54456d5602 Fix an incorrect test which was always true (oupper is always < olower),
from Yusuke ENDOH.
2011-03-08 19:23:49 +00:00
Nicholas Marriott 79e30daeae Support passing through escape sequences to the underlying terminal by
using DCS with a "tmux;" prefix. Escape characters in the sequences must
be doubled. For example:

$ printf '\033Ptmux;\033\033]12;red\007\033\\'

Will pass \033]12;red\007 to the terminal (and change the cursor colour
in xterm). From Kevin Goodsell.
2011-03-07 23:46:27 +00:00
Nicholas Marriott 9fc2c34a3b Accept tcgetattr/tcsetattr failure, fixes problems with fatal() if the
terminal disappears while locked.
2011-01-29 08:39:43 +00:00
Nicholas Marriott 3de1700f61 Only set a mouse mode for mouse-select-pane if none already set by the
mode (any will do).
2011-01-15 00:46:19 +00:00
Nicholas Marriott 8f8e81c0c9 Mouse highlight mode (1001) requires a program to cooperate so
supporting it through tmux is not as easy as this, remove it for now.
2011-01-15 00:16:00 +00:00
Nicholas Marriott 69cb1f830e Move all calls to fcntl(...O_NONBLOCK) into a function and clear the
flag on the stdio file descriptors before closing them (fixes things
like "tmux ls && cat").
2011-01-08 01:52:36 +00:00
Nicholas Marriott ac3b78a841 Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262
and supports larger terminals than the older way.

If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all
UTF-8 terminals. The option defaults to on if LANG etc are set in the
same manner as the utf8 option.

With help and based on code from hsim at gmx.li.
2011-01-03 23:35:21 +00:00
Nicholas Marriott f7c42c21ba Support all four of the xterm mouse modes. Based on a diff from hsim at
gmx.li.
2010-12-29 21:49:06 +00:00
Nicholas Marriott ef9b2eb566 There is somewhere that WINDOW_HIDDEN is getting set when it shouldn't
be and I can't find it, but the flag itself is a useless optimisation
that only applies to automatic-resize windows, so just dispose of it
entirely.

Fixes problems reported by Nicholas Riley.
2010-11-22 21:13:13 +00:00