diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-09-02 17:34:57 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-09-02 17:34:57 +0000 |
commit | 74c35c513efc616cd56aa9bd1d7b2561fd6df132 (patch) | |
tree | 94e0715a10228a06fe1ef7833a195680767f3e64 | |
parent | c5ac2579bac08f46f68ee7b9b9e47b6123e83bd2 (diff) |
Accept -l to make it easier for people who use tmux as a login shell to use
$SHELL. Originally from martynas@, tweaked by me.
-rw-r--r-- | cmd-server-info.c | 5 | ||||
-rw-r--r-- | tmux.1 | 6 | ||||
-rw-r--r-- | tmux.c | 13 | ||||
-rw-r--r-- | tmux.h | 1 |
4 files changed, 18 insertions, 7 deletions
diff --git a/cmd-server-info.c b/cmd-server-info.c index daa08572..14212478 100644 --- a/cmd-server-info.c +++ b/cmd-server-info.c @@ -68,8 +68,9 @@ cmd_server_info_exec(unused struct cmd *self, struct cmd_ctx *ctx) tim = ctime(&start_time); *strchr(tim, '\n') = '\0'; ctx->print(ctx, "pid %ld, started %s", (long) getpid(), tim); - ctx->print(ctx, "socket path %s, debug level %d%s", - socket_path, debug_level, be_quiet ? ", quiet" : ""); + ctx->print(ctx, "socket path %s, debug level %d%s%s", + socket_path, debug_level, be_quiet ? ", quiet" : "", + login_shell ? ", login shell" : ""); if (uname(&un) == 0) { ctx->print(ctx, "system is %s %s %s %s", un.sysname, un.release, un.version, un.machine); @@ -23,7 +23,7 @@ .Sh SYNOPSIS .Nm tmux .Bk -words -.Op Fl 28dqUuv +.Op Fl 28dlqUuv .Op Fl f Ar file .Op Fl L Ar socket-name .Op Fl S Ar socket-path @@ -120,6 +120,10 @@ commands which are executed in sequence when the server is first started. If a command in the configuration file fails, .Nm will report an error and exit without executing further commands. +.It Fl l +Behave as a login shell. +This flag currently has no effect and is for compatibility with other shells +when using tmux as a login shell. .It Fl L Ar socket-name .Nm stores the server socket in a directory under @@ -57,6 +57,7 @@ int debug_level; int be_quiet; time_t start_time; char *socket_path; +int login_shell; __dead void usage(void); char *makesockpath(const char *); @@ -68,8 +69,8 @@ __dead void usage(void) { fprintf(stderr, - "usage: %s [-28dqUuv] [-f file] [-L socket-name] [-S socket-path]\n" - " [command [flags]]\n", + "usage: %s [-28dlqUuv] [-f file] [-L socket-name]\n" + " [-S socket-path] [command [flags]]\n", __progname); exit(1); } @@ -316,8 +317,9 @@ main(int argc, char **argv) unlock = flags = 0; label = path = NULL; - while ((opt = getopt(argc, argv, "28df:L:qS:uUv")) != -1) { - switch (opt) { + login_shell = (**argv == '-'); + while ((opt = getopt(argc, argv, "28df:lL:qS:uUv")) != -1) { + switch (opt) { case '2': flags |= IDENTIFY_256COLOURS; flags &= ~IDENTIFY_88COLOURS; @@ -334,6 +336,9 @@ main(int argc, char **argv) xfree(cfg_file); cfg_file = xstrdup(optarg); break; + case 'l': + login_shell = 1; + break; case 'L': if (label != NULL) xfree(label); @@ -1117,6 +1117,7 @@ extern int debug_level; extern int be_quiet; extern time_t start_time; extern char *socket_path; +extern int login_shell; void logfile(const char *); void siginit(void); void sigreset(void); |