Commit Graph

5864 Commits

Author SHA1 Message Date
fc54bfe6b0 Make cmdq->client_exit a tristate (-1 means "not set") so that if
explicitly set it can be copied from child to parent cmdq by if-shell
and source-file. This fixes using attach or new. From Chris Johnsen.
2013-10-10 12:04:38 +00:00
1a49ebaa9f First period not last for host_short, from Michael Scholz. 2013-10-10 12:04:01 +00:00
e4dc1568ce Don't treat TMUX_TMPDIR as a potential file
The point of setting TMUX_TMPDIR is to then make any labels from -L go
to that directory.  In the case of makesocketpath() with no TMUX_TMPDIR
set, would set both the path and the default socket to a file.  The
checking of the permissions on the file worked fine in that case, but
when TMUX_TMPDIR is set, won't work on a directory.

This fixes the problem by ensuring the check on the permissions is
performed on directories only.

By Thomas Adam.
2013-10-10 12:03:22 +00:00
1bd0851ee8 Mark flags as optional and mutually exclusive. From Tiago Cunha. 2013-10-10 12:02:55 +00:00
1b7c2dd056 Trivial style and spacing nits. 2013-10-10 12:01:14 +00:00
d45c12b6c9 Remove the barely-used and unnecessary command check() function. 2013-10-10 12:00:18 +00:00
90ae7682ed Clear window->flags when clearing winlinks
When clearing WINLINK_ALERTFLAGS for all sessions, we must also, for
that window, clear the window->flags as well, otherwise sessions may
well still see flags for winlinks long since cleared.

This therefore introduces WINDOW_ALERTFLAGS to help with this.
2013-10-10 11:59:23 +00:00
e6af0ad23e choose-tree: Reset top when toggling items
When choose-tree is told to expand/collapse items (especially when first
rendering collapsed to just show sessions), ensure that in addition to
setting the selected item, that the item itself appears on the bottom of
the screen, rather than off screen.

This was causing rendering glitches when a very small tmux window tried
to render a list of items in choose-tree much larger than itself, and
the selected item appeared off screen, and didn't show the selection
until the selection had wrapped around to the top of the screen.
2013-10-10 11:58:52 +00:00
34674bb180 Renumber windows: Lookup lastw via window not index
When calling 'movew -r' on a session to reorder the winlinks, ensure
when adding back in the information for the lastw stack that we look up
the winlink based on the window and not its index.

Using the index doesn't make sense here because when comparing it to the
old set, it will never match since the winlink has been renumbered.

Bug reported by Ben Boeckel. Patch by Thomas Adam.
2013-10-10 11:58:24 +00:00
784b711393 Assign mouse x/y coords before checking them. When receiving mouse
inputs, we should set the x/y coordinates earlier than we currently do,
so that we aren't off-by-one in the case when the statusbar is at the
top of the screen. By Thomas Adam.
2013-10-10 11:57:52 +00:00
81a548bcc4 Accept multiple parameters to SM/RM/DECSET/DECRST, based on a diff from
Hayaki Saito.
2013-10-10 11:57:14 +00:00
fd1750af49 Add automatic-rename-format option allowing automatic rename to use
something other than pane_current_command.
2013-10-10 11:56:50 +00:00
2bf2f5d58e Allow nested format expansion. 2013-10-10 11:50:36 +00:00
40811eb8d4 Add length limit operator for formats. 2013-10-10 11:50:20 +00:00
2756d12750 Handle input mouse positions <33 (we already can generate them). 2013-10-10 11:49:42 +00:00
7839993fe7 Only include actual trailing spaces not unused cells with capturep -J,
from George Nachman.
2013-10-10 11:49:29 +00:00
47a4a9992c Allow the file descriptor received from the client to be -1. 2013-10-10 11:49:07 +00:00
d75dd2ab1c Add formats for window flags. 2013-10-10 11:47:52 +00:00
6e665708fc Missing space in refresh-client synopsis. 2013-10-10 11:46:47 +00:00
d3830e622f Grouped sessions were being leaked on destroy, correctly free them. 2013-10-10 11:46:28 +00:00
0538676aa3 Make recalculate_sizes() handle an empty window with no active
pane. This can happen when a window is in two sessions - it isn't
destroyed immediately when the pane goes away but is left until the last
session is destroyed. Fixes problems with grouped sessions reported by
Daniel Ralston.
2013-10-10 11:46:00 +00:00
4c9f41f1ad Pass flags into cmdq_guard as an argument since sometimes cmdq->cmd can
be NULL. Avoids crash when a command in a command client can't be
parsed.
2013-10-10 11:45:28 +00:00
e588ddb5d6 Add openat() to compat. 2013-10-10 10:27:23 +01:00
f3ec8693e3 Pass -1 for cwd now not NULL. 2013-10-06 22:44:24 +01:00
e9b09faab2 We accidentally haven't been using $TMUX to work out the session for a while
and in fact it is less useful that using the client ttyname. So don't bother
and don't pass it from the client. If we need it in future it is in c->environ.
2013-10-06 22:38:33 +01:00
5ea6148362 Remove now unused cmd_get_default_path. 2013-10-06 21:35:44 +01:00
9e0d7bddc0 Don't boke when figuring out working directory from configuration file. 2013-10-06 21:31:55 +01:00
aa0a57fd56 Show session name in detached message. Requested by somebody a few months ago
who didn't bother testing it. But it works for me anyway.
2013-10-06 21:21:52 +01:00
d86c70af96 Don't look at string[length - 1] if length == 0. 2013-10-06 21:20:11 +01:00
4538c269d0 Alter how tmux handles the working directory to internally use file descriptors
rather than strings.

- Each session still has a current working directory.

- New sessions still get their working directory from the client that created
  them or its attached session if any.

- New windows are created by default in the session working directory.

- The -c flag to new, neww, splitw allows the working directory to be
  overridden.

- The -c flag to attach let's the session working directory be changed.

- The default-path option has been removed.

To get the equivalent to default-path '.', do:

        bind c neww -c $PWD

To get the equivalent of default-path '', do:

        bind c neww -c '#{pane_current_path}'

The equivalent of default-path '~' is left as an exercise for the reader.

This also changes the client identify protocol to be a set of messages rather
than one as well as some other changes that should make it easier to make
backwards-compatible protocol changes in future.
2013-10-06 21:02:23 +01:00
446eb11cde Make tilde expansion in command strings work even if it isn't terminated by /. 2013-10-06 09:06:07 +01:00
fa1375c09f Similarly for MSG_COMMAND - allow full imsg limit not arbitrary 2048. 2013-10-06 00:48:24 +01:00
f141e9b37a Instead of fixed size buffers for some messages, send only the string length. 2013-10-06 00:28:35 +01:00
3fba377ddd retcode -> retval for exit message. 2013-10-06 00:18:00 +01:00
01a4752503 Merge IDENTIFY_* flags with CLIENT_* flags. 2013-10-06 00:10:40 +01:00
d66cbf20f7 Bump protocol version and add new message types. 2013-10-06 00:06:01 +01:00
7e4314eccb Remove CMD_SENDENVIRON. 2013-10-06 00:02:52 +01:00
7c71c3e27d Change the default for the default-path option to ~. This is a quick
change to turn off the KERN_PROC_CWD code which is unpredictable. Later
it will go away and there may be other changes to how this works.
2013-10-05 13:56:48 +00:00
5eeee39cc1 Ignore .dirstamp files
GNU automake 1.14+ uses these files for subdir-option detection.  We don't
want to accidentally commit these.  They're not useful to us.
2013-10-05 12:45:24 +01:00
796974ddf6 Check setupterm() in libtinfo also
Some ncurses packages have build time configuration options to separate its
different parts into separate libraries.  Some Linux distributions in
particular separate out the terminfo routines in to libtinfo.

This change teaches configure that setupterm() can also be found there.
2013-10-05 12:44:29 +01:00
75f5b3dab6 Add subdir-objects to shut automake up
automake 1.14 onwards has started emitting lots of warnings about this
option:

automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the
'subdir-objects'
automake: automake option hasn't been enabled.  For now, the corresponding
output
automake: object file(s) will be placed in the top-level directory.
However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same
subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout
your
automake: project, to avoid future incompatibilities.

So enable this in AM_INIT_AUTOMAKE.

This doesn't seem to break older automake versions.
2013-10-05 12:44:09 +01:00
9f330897a8 Fix previous not to leak fd on failure, whoops. 2013-10-05 10:40:49 +00:00
710eeb2a33 Fix previous not to lead fd on failure. 2013-10-05 11:40:47 +01:00
3493b7dac7 Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code 2013-10-05 09:14:35 +01:00
d51b4f92d7 Use open(".")/fchdir() to save and restore current directory rather than
getcwd()/chdir().
2013-10-05 09:14:11 +01:00
3d8a8ea0c6 Use open(".")/fchdir() to save and restore current directory rather than
getcwd()/chdir().
2013-10-05 08:12:39 +00:00
3ce7122aac Upgrade to 1.8.9 1.8.9 2013-10-04 17:53:02 -04:00
ed4020b589 Use ~/.tmate.conf to load tmate specific settings
Closes #10
2013-10-04 17:52:12 -04:00
0d182e707e Allow users to specify their own tmate servers
Options:
- tmate-server-host
- tmate-server-port
- tmate-server-dsa-fingerprint
- tmate-server-rsa-fingerprint
- tmate-server-ecdsa-fingerprint
2013-10-04 17:36:46 -04:00
bb5634ce20 Update libssh 2013-10-04 16:34:36 -04:00