nicm
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
nicm
d2fb0efcd1
Add hooks infrastructure, basic commands (set-hook, show-hooks) and a
...
couple of not very useful client hooks. This will eventually let
commands be run at various points and on notifications. Joint work with
Thomas Adam.
2015-12-08 01:10:31 +00:00
nicm
577c0e3e5a
Use __unused rather than rolling our own.
2015-11-18 14:27:44 +00:00
nicm
ca5e6bf5f2
Don't update activity time twice for new sessions, and add some logging.
2015-11-18 09:22:29 +00:00
nicm
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
nicm
bf9c933cae
Like options, move the environ struct into environ.c.
2015-10-28 09:51:55 +00:00
nicm
44657bf932
Move struct options into options.c.
2015-10-27 15:58:42 +00:00
nicm
fa3d4fab85
Fix a spelling error, sesson -> session.
2015-09-01 18:50:16 +00:00
nicm
b5aaefc727
Move alerts onto events rather than checking every loop.
2015-08-29 08:30:54 +00:00
nicm
ed2a486f46
Don't leak name when freeing session, from Kuang-che Wu.
2015-08-28 13:16:03 +00:00
nicm
f6a0f8730e
Per-session timers for locking, and remove the global one-second timer.
2015-08-28 13:12:20 +00:00
nicm
57cc4d45d5
Make session_update_activity more useful and use it in more places.
2015-08-28 13:01:03 +00:00
nicm
641a9cd3f5
Similarly, for sessions use a callback to free rather than checking
...
every loop.
2015-06-05 18:18:32 +00:00
nicm
31b1ab4852
Add a format window_linked which is 1 if a window has been linked
...
multiple times, also remove the default space in window_flags and use a
conditional to add it in window-status-format (this means additional
flags can be added in the option without extra spaces). From Thomas Adam
with tweaks by me.
2015-05-06 08:35:39 +00:00
nicm
6dbd63ba4f
Move the functions to convert ids from strings into session.c and window.c.
2015-04-25 18:09:28 +00:00
nicm
9a453dd354
Make session_has return a flag, returning the first winlink found is a
...
recipe for errors.
2015-04-22 15:32:33 +00:00
nicm
abfb9656ef
Fix some spacing nits.
2014-10-22 23:18:53 +00:00
nicm
68cb1c0e6b
Merge unlink-window into kill-window.
2014-10-22 23:11:41 +00:00
nicm
b3e8d440ed
If multiple arguments are given to new-session, new-window,
...
split-window, respawn-window or respawn-pane, pass them directly to
execvp() to help avoid quoting problems. One argument still goes to "sh
-c" like before. Requested by many over the years. Patch from J Raynor.
2014-05-13 08:08:32 +00:00
nicm
3e27be353d
Set PATH explicitly, either from client or session
...
environment. Previously it came from the session environment. From J
Raynor.
2014-04-17 13:02:59 +00:00
nicm
9ee93b3ea3
Do not permit periods in session names (colons are already banned). From
...
J Raynor.
2014-01-22 14:00:08 +00:00
nicm
282c5f9644
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 ~
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-10 12:26:34 +00:00
nicm
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
nicm
d3830e622f
Grouped sessions were being leaked on destroy, correctly free them.
2013-10-10 11:46:28 +00:00
Nicholas Marriott
6fee3e9e4b
Rename session idx to session id throughout and add $ prefix to targets
...
to use it, extended from a diff from George Nachman.
2013-03-25 10:11:45 +00:00
Nicholas Marriott
eaaeb28cda
Add session_set_current helper function, extracted from a diff from
...
Aaron Jensen.
2013-03-22 16:00:26 +00:00
Nicholas Marriott
df912e3540
xfree is not particularly helpful, remove it. From Thomas Adam.
2012-07-10 11:53:01 +00:00
Nicholas Marriott
63f5c38023
Clear flags across all sessions, from Thomas Adam.
2012-07-08 07:27:32 +00:00
Nicholas Marriott
a6c22d650b
Add a flag to move-window to renumber the windows in a session (closing
...
any gaps) and add an option to do this automatically each time a window
is killed. From Thomas Adam.
2012-04-29 17:20:01 +00:00
Nicholas Marriott
46210344a6
Add notify hooks for various events, the functions are currently empty
...
stubs but will be filled in for control mode later. From George Nachman.
2012-03-17 22:35:09 +00:00
Nicholas Marriott
6b734d1074
Correctly skip existing numbers when generating the name for a new
...
session.
2011-08-16 09:36:23 +00:00
Nicholas Marriott
ec89eb9552
Change so that an empty session name always means the current sessions
...
even if given with, for example, -t '', and explicitly forbid empty
session names and those containing a : when they are created.
2011-04-06 21:51:31 +00:00
Nicholas Marriott
1270f8fed8
Check if the index is in use and fail before creating the child process,
...
rather than leaving a stray child on failure.
2011-01-25 22:31:50 +00:00
Nicholas Marriott
2d82567070
Er, fix next and previous session functions to actually work, part 2.
2011-01-13 02:08:14 +00:00
Nicholas Marriott
588ebb5393
Fix next and previous session functions to actually work.
2011-01-13 02:07:06 +00:00
Nicholas Marriott
04b32fa734
Don't reset the activity timer for unattached sessions every second,
...
this screws up the choice of most-recently-used. Instead, break the time
update into a little function and do it when the session is attached.
Pointed out by joshe@.
2011-01-01 01:12:09 +00:00
Nicholas Marriott
cc42614fa9
Change from a per-session stack of buffers to one global stack which is
...
much more convenient and also simplifies lot of code. This renders
copy-buffer useless and makes buffer-limit now a server option.
By Tiago Cunha.
2010-12-30 23:16:18 +00:00
Nicholas Marriott
acf13ce978
Store sessions in an RB tree by name rather than a list, this is tidier
...
and allows them to easily be shown sorted in various lists
(list-sessions/choose-sessions).
Keep a session index which is used in a couple of places internally but
make it an ever-increasing number rather than filling in gaps with new
sessions.
2010-12-21 22:37:59 +00:00
Nicholas Marriott
1b8488ee75
Fix another stray addition that was too early. Oops.
2010-12-20 01:28:18 +00:00
Nicholas Marriott
6fcdc714b6
Undo a change to next/previous session that got mixed in prematurely.
2010-12-20 00:43:24 +00:00
Nicholas Marriott
8705c6b435
Dead sessions are never on the active sessions list, so the SESSION_DEAD
...
flag is effectively unused. Remove it.
2010-12-20 00:19:20 +00:00
Nicholas Marriott
a51dcdc430
Unify the way sessions are used by callbacks - store the address and use
...
the reference count, then check it is still on the global sessions list
in the callback.
2010-12-20 00:03:55 +00:00
Nicholas Marriott
a22a6deda5
Add -n and -p flags to switch-client to move to the next and previous
...
session (yes, it doesn't match window/pane, but so what, nor does
switch-client).
Based on a diff long ago from "edsouza".
2010-09-08 22:02:28 +00:00
Nicholas Marriott
07a71fd432
Store the current working directory in the session, change the default-path
...
option to default to empty and make that mean that the stored session CWD is
used.
2010-06-27 02:56:59 +00:00
Nicholas Marriott
e63f0546a1
Having a list of winlinks->alerts for each session is stupid, just store
...
the alert flags directly in the winlink itself.
2010-06-21 01:27:46 +00:00
Nicholas Marriott
447a07e9f8
Rename activity->alert in a couple of functions for consistency.
2010-06-21 00:25:32 +00:00
Nicholas Marriott
4feee126b8
Fix a couple of problems with grouped sessions reported by danh: redraw
...
properly and choose the correct last window after a window is killed.
2009-12-22 10:20:08 +00:00
Nicholas Marriott
15a64b805e
Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last
...
time now I've configured emacs to make them displayed in really annoying
colours...
2009-12-03 22:50:09 +00:00
Nicholas Marriott
4ca857e0e9
Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to
...
the rest to reduce lint output.
2009-11-26 21:37:13 +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