diff options
author | nicm <nicm> | 2020-01-28 10:44:30 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-01-28 10:44:30 +0000 |
commit | f165221dc4641837ee9f589bb666d310a495904c (patch) | |
tree | 803a9772a19610a93f444718119195863442b2b8 | |
parent | 32816eaebd4ccd712cc7f7291a587146d122a9ff (diff) | |
download | rtmux-f165221dc4641837ee9f589bb666d310a495904c.tar.gz rtmux-f165221dc4641837ee9f589bb666d310a495904c.tar.bz2 rtmux-f165221dc4641837ee9f589bb666d310a495904c.zip |
Reduce a difference with portable tmux by adding the -V flag and
#{version} format; on OpenBSD these just report the OpenBSD version.
-rw-r--r-- | format.c | 1 | ||||
-rw-r--r-- | proc.c | 4 | ||||
-rw-r--r-- | tmux.1 | 8 | ||||
-rw-r--r-- | tmux.c | 20 | ||||
-rw-r--r-- | tmux.h | 1 |
5 files changed, 30 insertions, 4 deletions
@@ -1106,6 +1106,7 @@ format_create(struct client *c, struct cmdq_item *item, int tag, int flags) ft->flags = flags; ft->time = time(NULL); + format_add(ft, "version", "%s", getversion()); format_add_cb(ft, "host", format_cb_host); format_add_cb(ft, "host_short", format_cb_host_short); format_add_cb(ft, "pid", format_cb_pid); @@ -182,8 +182,8 @@ proc_start(const char *name) if (uname(&u) < 0) memset(&u, 0, sizeof u); - log_debug("%s started (%ld): socket %s, protocol %d", name, - (long)getpid(), socket_path, PROTOCOL_VERSION); + log_debug("%s started (%ld): version %s, socket %s, protocol %d", name, + (long)getpid(), getversion(), socket_path, PROTOCOL_VERSION); log_debug("on %s %s %s; libevent %s (%s)", u.sysname, u.release, u.version, event_get_version(), event_get_method()); @@ -23,7 +23,7 @@ .Sh SYNOPSIS .Nm tmux .Bk -words -.Op Fl 2Cluv +.Op Fl 2CluvV .Op Fl c Ar shell-command .Op Fl f Ar file .Op Fl L Ar socket-name @@ -210,6 +210,11 @@ signal may be sent to the server process to toggle logging between on (as if .Fl v was given) and off. +.It Fl V +Report the +.Nm +version. +.Pp .It Ar command Op Ar flags This specifies one of a set of commands used to control .Nm , @@ -4369,6 +4374,7 @@ The following variables are available, where appropriate: .It Li "session_windows" Ta "" Ta "Number of windows in session" .It Li "socket_path" Ta "" Ta "Server socket path" .It Li "start_time" Ta "" Ta "Server start time" +.It Li "version" Ta "" Ta "Server version" .It Li "window_active" Ta "" Ta "1 if window active" .It Li "window_active_clients" Ta "" Ta "Number of clients viewing this window" .It Li "window_active_clients_list" Ta "" Ta "List of clients viewing this window" @@ -18,6 +18,7 @@ #include <sys/types.h> #include <sys/stat.h> +#include <sys/utsname.h> #include <err.h> #include <errno.h> @@ -212,6 +213,20 @@ find_home(void) return (home); } +const char * +getversion(void) +{ + static char *version; + struct utsname u; + + if (version == NULL) { + if (uname(&u) < 0) + fatalx("uname failed"); + xasprintf(&version, "openbsd-%s", u.release); + } + return version; +} + int main(int argc, char **argv) { @@ -238,7 +253,7 @@ main(int argc, char **argv) flags = 0; label = path = NULL; - while ((opt = getopt(argc, argv, "2c:Cdf:lL:qS:uUv")) != -1) { + while ((opt = getopt(argc, argv, "2c:Cdf:lL:qS:uUvV")) != -1) { switch (opt) { case '2': flags |= CLIENT_256COLOURS; @@ -255,6 +270,9 @@ main(int argc, char **argv) case 'f': set_cfg_file(optarg); break; + case 'V': + printf("%s %s\n", getprogname(), getversion()); + exit(0); case 'l': flags |= CLIENT_LOGIN; break; @@ -1769,6 +1769,7 @@ int areshell(const char *); void setblocking(int, int); const char *find_cwd(void); const char *find_home(void); +const char *getversion(void); /* proc.c */ struct imsg; |