62d3af17f9
Make environ_set va_args and use it to tidy up some calls. Also add a
...
missing word in manpage (from jmc).
2015-11-24 23:46:15 +00:00
3ff46b2e43
Shell command from -c doesn't have to be global, pass it as an argument.
2015-11-24 23:22:51 +00:00
c913fb99b6
Tidy the code that works out the socket path, and just use the full path
...
in the global socket_path rather than copying it.
2015-11-24 22:27:22 +00:00
1e2df2d464
Remove the -I part of show-messages which isn't really that useful; the
...
server start time can now be accessed with a new start_time format (use:
tmux display -p '#{t:start_time}')
2015-11-24 21:52:06 +00:00
9cccb8c115
Make the log stuff a bit tidier with some helper functions.
2015-11-24 21:19:46 +00:00
b32ce34cf2
Don't allow options in table without scope set.
2015-11-24 09:34:55 +00:00
2adf3f42ee
Partly revert previous, it is harmless to keep support for UTF-8 mouse
...
mode inside tmux, just no longer support it for tmux itself.
2015-11-23 23:47:57 +00:00
32e510bd70
Remove support for the UTF-8 mouse extension. This was a briefly used,
...
poor idea that was fairly quickly replaced by SGR mouse input (which is
now widespread). It is impossible to tell the difference between UTF-8
and non-UTF-8 mouse input; since the mouse-utf8 option was removed tmux
has not handled it correctly in any case; and it is ridiculous to have
three different forms of mouse input.
2015-11-23 20:53:09 +00:00
fce56c56ef
Instead of separate tables for different types of options, give each
...
option a scope type (server, session, window) in one table.
2015-11-20 12:01:19 +00:00
374e273df5
Only assume pasting with at least two characters, reduces problems for
...
people who can type ^B c very fast, or who are using tmux inside
something else that buffers.
2015-11-19 22:46:46 +00:00
577c0e3e5a
Use __unused rather than rolling our own.
2015-11-18 14:27:44 +00:00
64571368dc
Sync the entire xmalloc.[ch] with the other users, but with the addition
...
of xrealloc, xvasprintf, xvsnprintf.
2015-11-18 13:06:54 +00:00
661d0dfac9
Make key_code unsigned long long not uint64_t which is more portable for
...
printf formats, and move UTF8_SIZE define down to near the rest of the
UTF-8 bits.
2015-11-15 22:50:38 +00:00
205d15e82d
All these return values from utf8_* are confusing, use an enum.
2015-11-14 11:45:43 +00:00
64333e3ef8
Be more strict about invalid UTF-8.
2015-11-14 10:56:31 +00:00
c56b81a2ce
Push stdout and stderr to clients more aggressively, and add an event to
...
continue if the send fails.
2015-11-14 09:41:06 +00:00
c5689a5a40
Long overdue change to the way we store cells in the grid: now, instead
...
of storing a full grid_cell with UTF-8 data and everything, store a new
type grid_cell_entry. This can either be the cell itself (for ASCII
cells), or an offset into an extended array (per line) for UTF-8
data.
This avoid a large (8 byte) overhead on non-UTF-8 cells (by far the
majority for most users) without the complexity of the shadow array we
had before. Grid memory without any UTF-8 is about half.
The disadvantage that cells can no longer be modified in place and need
to be copied out of the grid and back but it turned out to be lot less
complicated than I expected.
2015-11-13 08:09:28 +00:00
a209ea3953
Add utf8_padcstr and use it to align columns in list-keys.
2015-11-12 12:43:36 +00:00
d6daf37df4
Tidy utf8.c a little: build table on first use, and make utf8_width take
...
a u_int rather than splitting and then combining again in utf8_split.
2015-11-12 12:19:57 +00:00
c41673f3fa
If we know the terminal outside tmux is not UTF-8, replace UTF-8 in
...
error messages and whatnot with underscores the same as we do when we
draw UTF-8 characters as part of the screen.
2015-11-12 11:10:50 +00:00
1b86f520ea
Nuke the utf8 and status-utf8 options and make tmux only a UTF-8
...
terminal. We still support non-UTF-8 terminals outside tmux, but inside
it is always UTF-8 (as when the utf8 and status-utf8 options were on).
2015-11-12 11:09:11 +00:00
69e0b8326a
Support UTF-8 key bindings by expanding the key type from int to
...
uint64_t and converting UTF-8 to Unicode on input and the reverse on
output. (This allows key bindings, there are still omissions - the
largest being that the various prompts do not accept UTF-8.)
2015-11-12 11:05:34 +00:00
abb4e9e2fa
The output log is only useful once and it means creating a file, so open
...
it once at startup instead of in every call to tty_open.
2015-10-31 13:12:03 +00:00
01defc9f49
Because pledge(2) does not allow us to pass directory file descriptors
...
around, we can't use file descriptors for the working directory because
we will be unable to pass it to a privileged process to tell it where to
read or write files or spawn children. So move tmux back to using
strings for the current working directory. We try to check it exists
with access() when it is set but ultimately fall back to ~ if it fails
at time of use (or / if that fails too).
2015-10-31 08:13:58 +00:00
bf9c933cae
Like options, move the environ struct into environ.c.
2015-10-28 09:51:55 +00:00
44657bf932
Move struct options into options.c.
2015-10-27 15:58:42 +00:00
07b0ea03c3
Break the common process set up, event loop and imsg dispatch code
...
between server and client out into a separate internal API. This will
make it easier to add another process.
2015-10-27 13:23:24 +00:00
e65306d8e7
Extend the modifiers allowed before formats: as well as the existing
...
#{=10:...} length limit, add #{t:...} to convert a time_t format to a
string, #{b:...} for basename and #{d:...} for dirname. Remove all the
foo_string time formats as they can now be replaced by "t:", for example
#{window_activity_string} becomes #{t:window_activity}.
2015-10-25 22:29:17 +00:00
14da999408
Format for scroll position, from Jorge Morante.
2015-10-23 16:02:21 +00:00
174a2ad731
Pass current directory as a string rather than a file descriptor because
...
pledge doesn't let us pass directory file descriptors.
2015-10-18 20:42:42 +00:00
28f23f18e9
Free the history when it is cleared, based on a diff from Carlo Cannas.
2015-09-25 15:53:07 +00:00
a4b4b29987
Rename cmd_q dead flag to a general flags bitmask (will be more flags later).
2015-09-16 22:24:54 +00:00
8da6de3e66
Style nit, int for flags not u_int.
2015-09-14 11:57:22 +00:00
af16ce6ad9
When the active pane changes, redraw panes if the style has
...
changed. From Cam Hutchison.
2015-09-14 11:34:50 +00:00
16efa84838
Make refresh-client force update of jobs, from Sina Siadat.
2015-09-14 10:25:52 +00:00
901c2eb20a
Add copy-mode -e to exit copy mode when scrolling off the bottom, useful
...
for quick view of history, from Cam Hutchison.
2015-09-13 13:31:40 +00:00
a3de5dbab1
Merge delete-buffer into cmd-set-buffer.c and change the paste buffer
...
API so it has one paste_free() rather than free_top and free_name
(everywhere that uses it already has the right pointer).
2015-09-11 14:41:50 +00:00
cfabe30bec
Add session_last_attached time and format, from Sina Siadat.
2015-09-10 08:58:14 +00:00
38e3baab2a
A one line helper function is a little silly.
2015-09-02 17:43:25 +00:00
8121127606
We no longer need the terminal service class, so don't bother asking for it.
2015-09-02 17:37:54 +00:00
69a2d46ee5
Remove dead_clients which is no longer used.
2015-09-01 11:13:39 +00:00
952ba84611
Work out config file when needed not at startup.
2015-09-01 10:10:59 +00:00
83157c02d6
Move initial conf load into cfg.c.
2015-09-01 10:01:56 +00:00
2a836bc306
All the cmd_*_entry declarations do not need to be in tmux.h.
2015-09-01 09:48:34 +00:00
6a539c00df
Path from $TMUX does not need to be global anymore.
2015-08-30 22:56:36 +00:00
c6e9160c67
Login shell can be a client flag, and move the exec code into client.c.
2015-08-30 22:40:25 +00:00
dd92b6e83d
Event base does not need to be global.
2015-08-30 22:19:07 +00:00
5047670693
Remove some old prototypes and unused functions.
2015-08-29 23:55:55 +00:00
52bbac506c
struct args_entry can go into arguments.c.
2015-08-29 23:19:52 +00:00
373ef850e0
paste_send_pane can be merged into cmd-paste-buffer.c now.
2015-08-29 09:36:46 +00:00