diff options
Diffstat (limited to 'tmux.c')
-rw-r--r-- | tmux.c | 24 |
1 files changed, 17 insertions, 7 deletions
@@ -23,17 +23,16 @@ #include <errno.h> #include <event.h> #include <fcntl.h> -#include <getopt.h> #include <locale.h> -#include <paths.h> #include <pwd.h> #include <stdlib.h> #include <string.h> +#include <time.h> #include <unistd.h> #include "tmux.h" -#ifdef DEBUG +#if defined(DEBUG) && defined(__OpenBSD__) extern char *malloc_options; #endif @@ -50,11 +49,15 @@ char socket_path[PATH_MAX]; __dead void usage(void); char *makesocketpath(const char *); +#ifndef HAVE___PROGNAME +char *__progname = (char *) "tmux"; +#endif + __dead void usage(void) { fprintf(stderr, - "usage: %s [-2Cluv] [-c shell-command] [-f file] [-L socket-name]\n" + "usage: %s [-2CluvV] [-c shell-command] [-f file] [-L socket-name]\n" " [-S socket-path] [command [flags]]\n", __progname); exit(1); @@ -193,7 +196,7 @@ main(int argc, char **argv) char *s, *path, *label, **var, tmp[PATH_MAX]; int opt, flags, keys; -#ifdef DEBUG +#if defined(DEBUG) && defined(__OpenBSD__) malloc_options = (char *) "AFGJPX"; #endif @@ -206,7 +209,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; @@ -221,6 +224,9 @@ main(int argc, char **argv) else flags |= CLIENT_CONTROL; break; + case 'V': + printf("%s %s\n", __progname, VERSION); + exit(0); case 'f': set_cfg_file(optarg); break; @@ -253,9 +259,11 @@ main(int argc, char **argv) if (shell_cmd != NULL && argc != 0) usage(); +#ifdef __OpenBSD__ if (pledge("stdio rpath wpath cpath flock fattr unix sendfd recvfd " "proc exec tty ps", NULL) != 0) err(1, "pledge"); +#endif if (!(flags & CLIENT_UTF8)) { /* @@ -347,9 +355,11 @@ main(int argc, char **argv) } free(path); +#ifdef HAVE_SETPROCTITLE /* Set process title. */ setproctitle("%s (%s)", __progname, socket_path); +#endif /* Pass control to the client. */ - exit(client_main(event_init(), argc, argv, flags)); + exit(client_main(osdep_event_init(), argc, argv, flags)); } |