Commit Graph

4700 Commits

Author SHA1 Message Date
nicm 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
nicm 2bf2f5d58e Allow nested format expansion. 2013-10-10 11:50:36 +00:00
nicm 40811eb8d4 Add length limit operator for formats. 2013-10-10 11:50:20 +00:00
nicm 2756d12750 Handle input mouse positions <33 (we already can generate them). 2013-10-10 11:49:42 +00:00
nicm 7839993fe7 Only include actual trailing spaces not unused cells with capturep -J,
from George Nachman.
2013-10-10 11:49:29 +00:00
nicm 47a4a9992c Allow the file descriptor received from the client to be -1. 2013-10-10 11:49:07 +00:00
nicm d75dd2ab1c Add formats for window flags. 2013-10-10 11:47:52 +00:00
nicm 6e665708fc Missing space in refresh-client synopsis. 2013-10-10 11:46:47 +00:00
nicm d3830e622f Grouped sessions were being leaked on destroy, correctly free them. 2013-10-10 11:46:28 +00:00
nicm 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
nicm 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
Nicholas Marriott e588ddb5d6 Add openat() to compat. 2013-10-10 10:27:23 +01:00
Nicholas Marriott f3ec8693e3 Pass -1 for cwd now not NULL. 2013-10-06 22:44:24 +01:00
Nicholas Marriott 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
Nicholas Marriott 5ea6148362 Remove now unused cmd_get_default_path. 2013-10-06 21:35:44 +01:00
Nicholas Marriott 9e0d7bddc0 Don't boke when figuring out working directory from configuration file. 2013-10-06 21:31:55 +01:00
Nicholas Marriott 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
Nicholas Marriott d86c70af96 Don't look at string[length - 1] if length == 0. 2013-10-06 21:20:11 +01:00
Nicholas Marriott 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
Nicholas Marriott 446eb11cde Make tilde expansion in command strings work even if it isn't terminated by /. 2013-10-06 09:06:07 +01:00
Nicholas Marriott fa1375c09f Similarly for MSG_COMMAND - allow full imsg limit not arbitrary 2048. 2013-10-06 00:48:24 +01:00
Nicholas Marriott f141e9b37a Instead of fixed size buffers for some messages, send only the string length. 2013-10-06 00:28:35 +01:00
Nicholas Marriott 3fba377ddd retcode -> retval for exit message. 2013-10-06 00:18:00 +01:00
Nicholas Marriott 01a4752503 Merge IDENTIFY_* flags with CLIENT_* flags. 2013-10-06 00:10:40 +01:00
Nicholas Marriott d66cbf20f7 Bump protocol version and add new message types. 2013-10-06 00:06:01 +01:00
Nicholas Marriott 7e4314eccb Remove CMD_SENDENVIRON. 2013-10-06 00:02:52 +01:00
nicm 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
Thomas Adam 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
Thomas Adam 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
Thomas Adam 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
nicm 9f330897a8 Fix previous not to leak fd on failure, whoops. 2013-10-05 10:40:49 +00:00
Nicholas Marriott 710eeb2a33 Fix previous not to lead fd on failure. 2013-10-05 11:40:47 +01:00
Nicholas Marriott 3493b7dac7 Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code 2013-10-05 09:14:35 +01:00
Nicholas Marriott d51b4f92d7 Use open(".")/fchdir() to save and restore current directory rather than
getcwd()/chdir().
2013-10-05 09:14:11 +01:00
nicm 3d8a8ea0c6 Use open(".")/fchdir() to save and restore current directory rather than
getcwd()/chdir().
2013-10-05 08:12:39 +00:00
Thomas Adam 2057812c8f mouse-resize-pane: Only resize on border select
The current behaviour of mouse-resize-pane is such that if the mouse button
is held down and a selection takes place within a pane, that if the mouse
pointer then hits a border edge, that pane-resize would initiate.

This seems counter-intuitive; instead, check for a resize condition if the
border of a pane is selected, and in the case of mouse selection within a
pane, no longer resize the pane if edge of the border is hit.
2013-10-02 06:53:47 +01:00
Nicholas Marriott 13360ad541 Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code 2013-10-01 23:50:24 +01:00
Nicholas Marriott 9389cfbec9 Support -c for new-session, based on code from J Raynor. 2013-10-01 23:48:03 +01:00
Nicholas Marriott 7be152412e 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-01 23:31:09 +01:00
Nicholas Marriott d0fa48db1e Restore missing key binding for %, from Chris Johnsen. 2013-10-01 23:27:36 +01:00
Nicholas Marriott 884a21d0f5 First period not last for host_short, from Michael Scholz. 2013-10-01 23:24:39 +01:00
Thomas 21bca549d3 layout-resize-pane-mouse: Consider visible panes only
When a pane is maximized, and text is selected, we end up checking if a pane
switch is needed.  This therefore means we might end up selecting panes
which aren't visible.
2013-09-30 15:26:43 +01:00
Thomas bda970b3b1 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.
2013-09-30 15:26:32 +01:00
Tiago Cunha 75ec17f0b5 Mark flags as optional and mutually exclusive. 2013-08-31 11:16:47 +01:00
Nicholas Marriott d62121e7bb Add entry about smaller clients based on text from Thomas Adam. 2013-08-31 10:42:09 +01:00
Nicholas Marriott 06d101657f No space in lsw -a targets. 2013-08-28 12:59:13 +01:00
Nicholas Marriott 2f7ffab0e8 Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code 2013-08-23 15:58:46 +01:00
Nicholas Marriott 3ed5e56a39 Set EVENT_NOEPOLL on Linux again. 2013-08-23 15:25:05 +01:00
Nicholas Marriott a0802dd486 A couple of manpage fixes from Tiago Cunha. 2013-08-22 00:32:55 +01:00
Nicholas Marriott f2675cdf04 Trivial style and spacing nits. 2013-08-21 18:35:01 +01:00