Nicholas Marriott
33b337f618
Change status line drawing to create the window list in a separate screen and
...
then copy it into the status line screen. This allows UTF-8 in window names and
fixes some problems with #[] in window-status-format.
2009-11-19 19:47:28 +00:00
Nicholas Marriott
543fb99bc6
Two new options, window-status-format and window-status-current-format, which
...
allow the format of each window in the status line window list to be controlled
using similar # sequences as status-left/right.
This diff also moves part of the way towards UTF-8 support in window names but
it isn't quite there yet.
2009-11-19 16:22:10 +00:00
Jason McIntyre
8b8a211185
tweak previous;
2009-11-19 15:00:32 +00:00
Nicholas Marriott
4a38189349
Revert to xterm-keys off by default. It was on as an experiment to see if the
...
option could be removed, but it affects vi, so we have to keep the option, and
a conservative default is better.
2009-11-19 14:06:33 +00:00
Nicholas Marriott
ed781e84ee
Tidy up by breaking the # replacement code into a separate function, also add a
...
few comments.
2009-11-19 11:38:54 +00:00
Nicholas Marriott
ac5b7d518e
Don't interpret #() for display-message, it usually doesn't make sense and may
...
leak commands.
2009-11-19 10:22:06 +00:00
Nicholas Marriott
8d4eae5662
Missed an unused variable :-/.
2009-11-18 17:03:16 +00:00
Nicholas Marriott
a78cc98c8b
Cleanup by moving various (mostly horrible) little bits handling UTF-8 grid
...
data into functions in a new file, grid-utf8.c, and use sizeof intead of
UTF8_DATA.
Also nuke trailing whitespace from tmux.1, reminded by jmc.
2009-11-18 17:02:17 +00:00
Nicholas Marriott
8db145da1e
Add a per-client log of status line messages displayed while that client
...
exists. A new message-limit session option sets the maximum number of entries
and a command, show-messages, shows the log (bound to ~ by default).
This (and prompt history) might be better as a single global log but until
there are global options it is easier for them to be per client.
2009-11-18 13:16:33 +00:00
Nicholas Marriott
68f5c9c72d
Mark -n keys with (no prefix) rather than [].
2009-11-18 10:18:25 +00:00
Nicholas Marriott
a9ca8df8e3
Permit top-bit-set characters to be entered in the status line. They could
...
already be set from the shell and are just passed through when printing (so
invisible characters or displaying on terminals with different character sets
may cause problems).
Note that entering UTF-8 may not work and in any case currently the status line
cannot display it correctly (outside of status-left/status-right).
2009-11-17 13:30:07 +00:00
Nicholas Marriott
67bf0933e2
In choose mode, assign each item a number or lowercase letter from those
...
available and accept that as a shortcut key for the item.
2009-11-17 13:06:11 +00:00
Nicholas Marriott
5d7bff4051
A screen can be one cell wide; don't crash if that is the case.
2009-11-16 13:40:45 +00:00
Nicholas Marriott
9f6d685c05
I made a complete horlicks of the last change, fix it so it doesn't either lead
...
to a double free or free the item after the end of the array.
2009-11-16 11:15:44 +00:00
Nicholas Marriott
10e05f9867
Tweak a comment and add some spacing.
2009-11-13 19:58:32 +00:00
Nicholas Marriott
76ef8770cd
Get rid of the ugly CMD_CHFLAG macro and use a const string (eg "dDU") in the
...
command entry structs and a couple of functions to check/set the flags.
2009-11-13 19:53:28 +00:00
Nicholas Marriott
dafa0f022c
Unreachable statement, found by lint.
2009-11-13 18:59:14 +00:00
Nicholas Marriott
390472566c
Tidy up and fix some types, prompted by lint via deraadt.
2009-11-13 18:13:18 +00:00
Nicholas Marriott
a18a374d51
imsg_read returns ssize_t not int, pointed out by lint via deraadt.
2009-11-13 18:07:52 +00:00
Nicholas Marriott
8e47966225
Destroy panes immediately rather than checking them all every loop.
2009-11-13 17:33:07 +00:00
Nicholas Marriott
1415eb3dd2
Use winlink_remove() to remove old winlinks when synchronizing grouped sessions
...
rather than doing it manually and not adjusted the reference count. Fixes
crash seen by Dan Harnett.
2009-11-13 14:47:31 +00:00
Nicholas Marriott
5d397462e4
Zap unused functions, prompted by deraadt.
2009-11-13 07:00:54 +00:00
Nicholas Marriott
5ae542e7ee
Emulate the ri (reverse index) capability: this allows tmux to at least start
...
on Sun consoles (TERM=sun or sun-color), even if there appear to still be
problems on some boxes (my Blade 100 is fine but edd's Blade 1000 shows odd
screen corruption).
2009-11-12 08:05:23 +00:00
Nicholas Marriott
d9deb4b530
Support rxvt-style keys again, but this time: support all the variations, put
...
them in as raw escape sequences rather than fiddling with the values from
terminfo, put them /after/ the terminfo values so the latter take precedence.
2009-11-12 08:01:02 +00:00
Nicholas Marriott
89763f2ace
Rewrite a confusing loop when freeing the arg array on exit and move the check
...
for argv being NULL, prompted by parfait via deraadt.
Also fix some definite brokenness when assigning multiple environment variables
in arguments (such as "X=1 Y=2").
2009-11-11 18:56:07 +00:00
Nicholas Marriott
9df4e7597d
Add an explicit zero-length check for UTF-8 input data, prompted by a report
...
from parfait via deraadt.
While here, add a statement to set the width when filling with _s if not enough
space (width should never be high enough at the moment anyway), and wrap some
long lines.
2009-11-11 18:53:21 +00:00
Nicholas Marriott
08a8ccf46b
Free the pane bufferevent when the fd is closed (the signal could come before
...
the error callback).
2009-11-11 13:24:42 +00:00
Nicholas Marriott
2756437f4b
Only need to chmod +x or -x the socket when a client is created, lost or
...
attached, rather than every event loop.
2009-11-11 08:00:42 +00:00
Nicholas Marriott
15b9946a40
There is no real standard for modifier plus function keys. Previously, tmux
...
output some from rxvt but in other ways did the same as xterm or other
terminals, but this is a bit inconsistent.
xterm's method is fairly sensible and we already support it (xterm-keys), so
enable it by default instead.
2009-11-10 18:53:11 +00:00
Nicholas Marriott
d9961f40bf
Don't output rxvtisms either.
2009-11-10 18:48:03 +00:00
Nicholas Marriott
05831b52c4
Twiddling the last bit is an rxvtism, so do not support it in the table by
...
default.
2009-11-10 17:59:34 +00:00
Nicholas Marriott
b92fcf23fd
Whoops, this is needed for last commit as well.
2009-11-10 17:41:35 +00:00
Nicholas Marriott
38f64b3da3
Lookup key as a named key (eg 'Space') before checking for single character
...
keys, makes C-Space/M-Space etc resolve to the correct key code.
2009-11-10 17:24:43 +00:00
Nicholas Marriott
9f47c6083a
Don't return 1 unless there was actually a problem (signal/lost server) rather
...
than for all events (normal exit/detach/etc).
2009-11-10 15:47:48 +00:00
Nicholas Marriott
6609093625
Just ignore tty fd errors rather than dying, stops the server dying if the
...
session is disconnected abrubtly (eg ssh ~.).
2009-11-09 22:50:29 +00:00
Nicholas Marriott
591fa23f6e
The input key should be a u_char. Fixes top-bit-set input problem reported by
...
ajacoutot@.
2009-11-09 14:40:06 +00:00
Nicholas Marriott
daf150c38d
Constify buf.
2009-11-09 11:45:10 +00:00
Nicholas Marriott
f98d13e7dc
Don't try enable/disable the event if the window pane is dead (fd == -1), as
...
the event will have been freed.
2009-11-06 10:42:06 +00:00
Nicholas Marriott
bed8153ba0
Clear to the end of the screen from the right starting point when drawing
...
line-by-line (in panes or if ed not supported). Fixes problem spotted by Frank
Terbeck.
2009-11-05 22:35:28 +00:00
Nicholas Marriott
297ebb1160
Old xterm F1-F4 are \033O_P not \033[O_P.
2009-11-05 19:35:16 +00:00
Nicholas Marriott
ff55eb5bfa
Unused variable. Aargh.
2009-11-05 19:32:34 +00:00
Nicholas Marriott
80e0158112
Switch the tty key tree over to an (unbalanced) ternary tree which allows
...
partial matches to be done (they wait for further data or a timer to expire,
like a naked escape).
Mouse and xterm-style keys still expect to be atomic.
2009-11-05 19:29:41 +00:00
Nicholas Marriott
05855393f0
key_string_lookup_key uses a static buffer, so copy its output into the working
...
buffer before calling the command print function which can also use it (eg
send-keys).
2009-11-05 12:04:50 +00:00
Nicholas Marriott
a790e16fa2
Key flags are only used for initialisation so they are not needed in the main
...
tty_key struct.
2009-11-05 10:44:36 +00:00
Nicholas Marriott
25c604fb1c
EVLOOP_ONCE takes care of the wakeup, so no need to call event_loopexit(NULL).
2009-11-05 08:50:32 +00:00
Nicholas Marriott
38e13942ac
Now all timers are events, there is no longer any need to wake up every 50 ms -
...
only wake up when an event happens.
2009-11-05 08:48:15 +00:00
Nicholas Marriott
b58bf49e91
Switch tty key input over to happen on a read event. This is a bit more
...
complicated because of escape input, but in that case instead of processing a
key immediately, schedule a timer and reprocess the bufer when it expires.
This currently assumes that keys will be atomic (ie that if eg F1 is pressed
the entire sequence is present in the buffer). This is usually but not always
true, a change in the tree format so it can differentiate potential (partial)
key sequences will happens soon and will allow this to be fixed.
2009-11-05 08:45:08 +00:00
Nicholas Marriott
80444436f3
Convert the key repeat timer to an event.
2009-11-05 00:05:00 +00:00
Nicholas Marriott
44d6a2c435
Change window name change to use a timer event rather than a gettimeofday()
...
check every loop.
2009-11-04 23:54:57 +00:00
Nicholas Marriott
946ed97273
Move status timer check into the global once-per-second timer, this could maybe
...
be done better but one every second is better than once every 50 ms.
2009-11-04 23:42:51 +00:00