aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
diff options
context:
space:
mode:
authornicm <nicm>2017-02-09 15:04:53 +0000
committernicm <nicm>2017-02-09 15:04:53 +0000
commitc6a3446398648fc2cc3682c351b57b9bfe5bc5f0 (patch)
tree7bd0ac8c644eb3037e1fd9633e6a1ad517fa3d01 /tmux.h
parent8de4c15dfa9d15d259d295b6f2e121c980082c79 (diff)
downloadrtmux-c6a3446398648fc2cc3682c351b57b9bfe5bc5f0.tar.gz
rtmux-c6a3446398648fc2cc3682c351b57b9bfe5bc5f0.tar.bz2
rtmux-c6a3446398648fc2cc3682c351b57b9bfe5bc5f0.zip
Instead of numbering session groups, give them a name which may be given
to -t instead of a target session. Also allow them to contain only one session.
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h22
1 files changed, 13 insertions, 9 deletions
diff --git a/tmux.h b/tmux.h
index 09c980df..2a5dbe65 100644
--- a/tmux.h
+++ b/tmux.h
@@ -901,11 +901,12 @@ struct environ_entry {
/* Client session. */
struct session_group {
- TAILQ_HEAD(, session) sessions;
+ const char *name;
+ TAILQ_HEAD(, session) sessions;
- TAILQ_ENTRY(session_group) entry;
+ RB_ENTRY(session_group) entry;
};
-TAILQ_HEAD(session_groups, session_group);
+RB_HEAD(session_groups, session_group);
struct session {
u_int id;
@@ -2210,13 +2211,15 @@ extern struct sessions sessions;
extern struct session_groups session_groups;
int session_cmp(struct session *, struct session *);
RB_PROTOTYPE(sessions, session, entry, session_cmp);
+int session_group_cmp(struct session_group *, struct session_group *);
+RB_PROTOTYPE(session_groups, session_group, entry, session_group_cmp);
int session_alive(struct session *);
struct session *session_find(const char *);
struct session *session_find_by_id_str(const char *);
struct session *session_find_by_id(u_int);
-struct session *session_create(const char *, int, char **, const char *,
- const char *, struct environ *, struct termios *, int,
- u_int, u_int, char **);
+struct session *session_create(const char *, const char *, int, char **,
+ const char *, const char *, struct environ *,
+ struct termios *, int, u_int, u_int, char **);
void session_destroy(struct session *);
void session_unref(struct session *);
int session_check_name(const char *);
@@ -2235,9 +2238,10 @@ int session_previous(struct session *, int);
int session_select(struct session *, int);
int session_last(struct session *);
int session_set_current(struct session *, struct winlink *);
-struct session_group *session_group_find(struct session *);
-u_int session_group_index(struct session_group *);
-void session_group_add(struct session *, struct session *);
+struct session_group *session_group_contains(struct session *);
+struct session_group *session_group_find(const char *);
+struct session_group *session_group_new(const char *);
+void session_group_add(struct session_group *, struct session *);
void session_group_synchronize_to(struct session *);
void session_group_synchronize_from(struct session *);
void session_renumber_windows(struct session *);