aboutsummaryrefslogtreecommitdiff
path: root/tty.c
Commit message (Collapse)AuthorAge
...
* The UTF-8 detection idea doesn't work and I am reasonably happy with theNicholas Marriott2009-10-09
| | | | current methods, so remove the (already #ifdef 0'd) code.
* Be less aggressive about turning the cursor off, only explicitly turn it offNicholas Marriott2009-10-09
| | | | when tmux is redrawing, otherwise leave in the state set by the application.
* Support -c like sh(1) to execute a command, useful when tmux is a loginNicholas Marriott2009-09-23
| | | | | | | shell. Suggested by halex@. This includes another protocol version increase (the last for now) so again restart the tmux server before upgrading.
* Don't die if the client is detaching (the tty has been closed) after waking upNicholas Marriott2009-09-23
| | | | from locking.
* Remove the internal tmux locking and instead detach each client and run theNicholas Marriott2009-09-23
| | | | | | | | | | | | | | command specified by a new option "lock-command" (by default "lock -np") in each client. This means each terminal has to be unlocked individually but simplifies the code and allows the system password to be used to unlock. Note that the set-password command is gone, so it will need to be removed from configuration files, and the -U command line flag has been removed. This is the third protocol version change so again it is best to stop the tmux server before upgrading.
* Trim some code by moving the ioctl(TIOCGWINSZ) after SIGWINCH from the clientNicholas Marriott2009-09-23
| | | | | | | into the server. This is another (the second of four) protocol version changes coming this morning, so again the server should be killed before upgrading.
* Don't attempt to open() the tty path, rely on the client sending its stdin fdNicholas Marriott2009-09-23
| | | | | | | | | with imsg and fatal if it doesn't, then set the FD_CLOEXEC flag in tty_init instead of tty_open to prevent them leaking into child processes if any are created between the two calls. This bumps the protocol version, so the tmux server should be killed before upgrading.
* Be more careful about what flags are cleared when opening the terminal,Nicholas Marriott2009-09-22
| | | | otherwise the opened/started flags are cleared and the terminal never released.
* Permit options such as status-bg to be configured using the entire 256 colourNicholas Marriott2009-09-10
| | | | palette by setting "colour0" to "colour255".
* Add a new display-panes command, with two options (display-panes-colour andNicholas Marriott2009-08-31
| | | | | display-panes-time), which displays a visual indication of the number of each pane.
* Emulate dch/dch1 if missing by redrawing the entire line.Nicholas Marriott2009-08-21
|
* Send SGR0 when initialising the screen. Fixes problems on terminals with BCENicholas Marriott2009-08-14
| | | | | (like putty) if the background colours is non-default when tmux starts. May also fix problems when resuming a suspended tmux.
* A tty context must not be modified as it may be reused to update multipleNicholas Marriott2009-08-12
| | | | | | | clients, so make it const. Also fix an actual modification which caused a hang when a session was connected to multiple terminals at least one of which was missing ich/ich1.
* Initialise log_fd to -1, prevents spurious disconnection of the client when itNicholas Marriott2009-08-11
| | | | | | ends up as fd 0 (likely if the server is started with "tmux start"). Also add some extra debugging messages to server.c.
* Have the client pass its stdin fd to the server when identifying itself andNicholas Marriott2009-08-11
| | | | | | | | | have the server use that rather than reopening the tty. If the fd isn't given, use the old behaviour (so no need for a version change). This allows tmux to be used as the shell, so also change so that when working out the command to execute if default-command is empty (the default), tmux will try not execute itself.
* Add a TTY_OPENED flag and tidy a little.Nicholas Marriott2009-08-11
|
* Drop the no_stop argument to tty_close and tty_free in favour of a flag in theNicholas Marriott2009-08-11
| | | | tty struct.
* Change the way the grid is stored, previously it was:Nicholas Marriott2009-08-08
| | | | | | | | | | | - a two-dimensional array of cells; - a two-dimensional array of utf8 data; - an array of line lengths. Now it is a single array of a new struct grid_line each of which represents a line and containts the length and an array of cells and an array of utf8 data. This will make it easier to add additional per-line members, such as flags.
* If colours are not supported by the terminal, try to emulate a colouredNicholas Marriott2009-08-05
| | | | | | | | background by setting or clearing the reverse attribute. This makes a few applications which don't use the reverse attribute themselves a little happier, and allows the status, message and mode options to have default attributes and fg/bg options that work as expected when set as reverse.
* Add a terminal-overrides session option allowing individual terminfo(5) entriesNicholas Marriott2009-08-03
| | | | | | | | to be overridden. The 88col/256col checks are now moved into the default setting and out of the code. Also remove a couple of old workarounds for xterm and rxvt which are no longer necessary (tmux can emulate them if missing).
* Draw UTF-8 characters under the selection correctly.Nicholas Marriott2009-07-27
|
* tty_write is relatively short and the only function left in tty-write.c so moveNicholas Marriott2009-07-22
| | | | it into tty.c.
* More tty code tidying: move the saved cursor/region position (from before theNicholas Marriott2009-07-22
| | | | screen was updated) out of struct screen and into struct tty_ctx.
* enum tty_cmd is only used as an index into the array of command functionNicholas Marriott2009-07-22
| | | | | pointers, so remove it and use the function pointers directly to represent themselves.
* There are relatively few arguments to tty_cmd_* functions now, so tidy them upNicholas Marriott2009-07-22
| | | | by using a struct rather than hiding everything with varargs.
* tty_cmd_raw is only used once, for raw UTF-8 output, so rename it toNicholas Marriott2009-07-22
| | | | tty_cmd_utf8character and eliminate the size argument.
* Don't send initialisation strings is1/2/3 (barely anything else does) and moveNicholas Marriott2009-07-10
| | | | | smcup to the first and rmcup to the last sequences output to the terminal. This allows tmux to use the alternate screen (smcup/rmcup) when available.
* Handle empty or unset TERM correctly; also fix a fatal() message while here.Nicholas Marriott2009-07-07
|
* Copy the 256-colour flag into the tty saved cell as well as the actual colour,Nicholas Marriott2009-06-27
| | | | otherwise colour 8 isn't reset properly.
* Miscellaneous unused functions, including one which was basically aNicholas Marriott2009-06-25
| | | | duplicate. Found by lint.
* Unused variables. Found by lint, no binary change.Nicholas Marriott2009-06-25
|
* Trying to predict the cursor position for UTF-8 output in the same way as forNicholas Marriott2009-06-24
| | | | | | normal eight-bit output is wrong, separate it into a different function. Fixes spacing when mixing UTF-8 with some escape sequences, notably the way w3m does it.
* Implement the DEC alignment test. With the last change this is enough for theNicholas Marriott2009-06-03
| | | | | first cursor test in vttest (in ports) to pass; it still shops a few more problems though.
* Fix some miscalculations when clearing to start of screen: the number of linesNicholas Marriott2009-06-03
| | | | to the cursor is cy not cy - 1, and the current cursor cell should be included.
* Recent code to try and detect if a terminal supports UTF-8 by printing to itNicholas Marriott2009-06-02
| | | | | fails spectacularly on (at least) sparc64, so disable it for now. Thanks to naddy and Josh Elsasser for help and testing.
* Import tmux, a terminal multiplexor allowing (among other things) a singleNicholas Marriott2009-06-01
terminal to be switched between several different windows and programs displayed on one terminal be detached from one terminal and moved to another. ok deraadt pirofti