aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2015-09-10 12:42:25 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2015-09-10 12:42:25 +0100
commiteb1084754c2dd08bbf05d1c09f52abdbf5b373d6 (patch)
treedbc147b51ff57147a4a8ee4e5a8139904d8cb5ac
parent79e5b6290733567266a584d817fed48e1f2a52c0 (diff)
parent1fd756066cc0df12debb8f4e44dee46142c73348 (diff)
downloadrtmux-eb1084754c2dd08bbf05d1c09f52abdbf5b373d6.tar.gz
rtmux-eb1084754c2dd08bbf05d1c09f52abdbf5b373d6.tar.bz2
rtmux-eb1084754c2dd08bbf05d1c09f52abdbf5b373d6.zip
Merge branch 'master' of github.com:tmux/tmux
-rw-r--r--cfg.c2
-rw-r--r--client.c4
-rw-r--r--cmd-attach-session.c2
-rw-r--r--cmd-new-session.c1
-rw-r--r--cmd-switch-client.c1
-rw-r--r--format.c7
-rw-r--r--server-fn.c1
-rw-r--r--tmux.12
-rw-r--r--tmux.h1
9 files changed, 20 insertions, 1 deletions
diff --git a/cfg.c b/cfg.c
index 9548f582..9657302b 100644
--- a/cfg.c
+++ b/cfg.c
@@ -97,7 +97,7 @@ load_cfg(const char *path, struct cmd_q *cmdq, char **cause)
}
found = 0;
- while ((buf = fparseln(f, NULL, &line, delim, 0))) {
+ while ((buf = fparseln(f, NULL, &line, delim, 0)) != NULL) {
log_debug("%s: %s", path, buf);
/* Skip empty lines. */
diff --git a/client.c b/client.c
index ef560668..0d7227d7 100644
--- a/client.c
+++ b/client.c
@@ -264,6 +264,10 @@ client_main(struct event_base *base, int argc, char **argv, int flags)
}
return (1);
}
+ options_free(&global_options);
+ options_free(&global_s_options);
+ options_free(&global_w_options);
+ environ_free(&global_environ);
/* Set process title, log and signals now this is the client. */
#ifdef HAVE_SETPROCTITLE
diff --git a/cmd-attach-session.c b/cmd-attach-session.c
index 356bd4aa..a2ae49cb 100644
--- a/cmd-attach-session.c
+++ b/cmd-attach-session.c
@@ -136,6 +136,7 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag,
status_timer_start(c);
notify_attached_session_changed(c);
session_update_activity(s, NULL);
+ gettimeofday(&s->last_attached_time, NULL);
server_redraw_client(c);
s->curw->flags &= ~WINLINK_ALERTFLAGS;
} else {
@@ -181,6 +182,7 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag,
status_timer_start(c);
notify_attached_session_changed(c);
session_update_activity(s, NULL);
+ gettimeofday(&s->last_attached_time, NULL);
server_redraw_client(c);
s->curw->flags &= ~WINLINK_ALERTFLAGS;
diff --git a/cmd-new-session.c b/cmd-new-session.c
index fa4f1553..7687398e 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -278,6 +278,7 @@ cmd_new_session_exec(struct cmd *self, struct cmd_q *cmdq)
status_timer_start(c);
notify_attached_session_changed(c);
session_update_activity(s, NULL);
+ gettimeofday(&s->last_attached_time, NULL);
server_redraw_client(c);
}
recalculate_sizes();
diff --git a/cmd-switch-client.c b/cmd-switch-client.c
index 8bc8a3c5..10171018 100644
--- a/cmd-switch-client.c
+++ b/cmd-switch-client.c
@@ -129,6 +129,7 @@ cmd_switch_client_exec(struct cmd *self, struct cmd_q *cmdq)
c->session = s;
status_timer_start(c);
session_update_activity(s, NULL);
+ gettimeofday(&s->last_attached_time, NULL);
recalculate_sizes();
server_check_unattached();
diff --git a/format.c b/format.c
index 643b035f..69d93baf 100644
--- a/format.c
+++ b/format.c
@@ -889,6 +889,13 @@ format_defaults_session(struct format_tree *ft, struct session *s)
format_add(ft, "session_created", "%lld", (long long) t);
format_add(ft, "session_created_string", "%s", format_time_string(t));
+ t = s->last_attached_time.tv_sec;
+ if (t != 0) { /* zero if never attached */
+ format_add(ft, "session_last_attached", "%lld", (long long) t);
+ format_add(ft, "session_last_attached_string", "%s",
+ format_time_string(t));
+ }
+
t = s->activity_time.tv_sec;
format_add(ft, "session_activity", "%lld", (long long) t);
format_add(ft, "session_activity_string", "%s", format_time_string(t));
diff --git a/server-fn.c b/server-fn.c
index 076e4e72..bc2b7002 100644
--- a/server-fn.c
+++ b/server-fn.c
@@ -425,6 +425,7 @@ server_destroy_session(struct session *s)
status_timer_start(c);
notify_attached_session_changed(c);
session_update_activity(s_new, NULL);
+ gettimeofday(&s_new->last_attached_time, NULL);
server_redraw_client(c);
}
}
diff --git a/tmux.1 b/tmux.1
index 681c9367..2e4edb2f 100644
--- a/tmux.1
+++ b/tmux.1
@@ -3406,6 +3406,8 @@ The following variables are available, where appropriate:
.It Li "session_activity_string" Ta "" Ta "String time of session last activity"
.It Li "session_created" Ta "" Ta "Integer time session created"
.It Li "session_created_string" Ta "" Ta "String time session created"
+.It Li "session_last_attached" Ta "" Ta "Integer time session last attached"
+.It Li "session_last_attached_string" Ta "" Ta "String time session last attached"
.It Li "session_group" Ta "" Ta "Number of session group"
.It Li "session_grouped" Ta "" Ta "1 if session in a group"
.It Li "session_height" Ta "" Ta "Height of session"
diff --git a/tmux.h b/tmux.h
index 6a36c1aa..1c643534 100644
--- a/tmux.h
+++ b/tmux.h
@@ -985,6 +985,7 @@ struct session {
int cwd;
struct timeval creation_time;
+ struct timeval last_attached_time;
struct timeval activity_time;
struct timeval last_activity_time;