summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/tmux/cmd-server-info.c7
-rw-r--r--usr.bin/tmux/tmux.18
-rw-r--r--usr.bin/tmux/tmux.c15
-rw-r--r--usr.bin/tmux/tmux.h3
4 files changed, 22 insertions, 11 deletions
diff --git a/usr.bin/tmux/cmd-server-info.c b/usr.bin/tmux/cmd-server-info.c
index da3b9ad516f..7f4c147c3ec 100644
--- a/usr.bin/tmux/cmd-server-info.c
+++ b/usr.bin/tmux/cmd-server-info.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-server-info.c,v 1.8 2009/08/18 14:48:42 nicm Exp $ */
+/* $OpenBSD: cmd-server-info.c,v 1.9 2009/09/02 17:34:57 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -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);
diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1
index d384059361e..f6e91c60bf0 100644
--- a/usr.bin/tmux/tmux.1
+++ b/usr.bin/tmux/tmux.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: tmux.1,v 1.81 2009/09/02 16:38:35 nicm Exp $
+.\" $OpenBSD: tmux.1,v 1.82 2009/09/02 17:34:57 nicm Exp $
.\"
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
.\"
@@ -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
diff --git a/usr.bin/tmux/tmux.c b/usr.bin/tmux/tmux.c
index c186452d393..a61d397e30c 100644
--- a/usr.bin/tmux/tmux.c
+++ b/usr.bin/tmux/tmux.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.c,v 1.40 2009/09/02 16:38:35 nicm Exp $ */
+/* $OpenBSD: tmux.c,v 1.41 2009/09/02 17:34:57 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -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);
diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h
index 84b13da760b..9299ca67776 100644
--- a/usr.bin/tmux/tmux.h
+++ b/usr.bin/tmux/tmux.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.h,v 1.95 2009/09/02 16:38:35 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.96 2009/09/02 17:34:57 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -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);