Sync OpenBSD patchset 309:

Accept -l to make it easier for people who use tmux as a login shell to use
$SHELL. Originally from martynas@, tweaked by me.
This commit is contained in:
Tiago Cunha 2009-09-03 21:02:55 +00:00
parent c274551db6
commit 884ebb6dab
4 changed files with 22 additions and 11 deletions

View File

@ -1,4 +1,4 @@
/* $Id: cmd-server-info.c,v 1.26 2009-08-20 11:35:16 tcunha Exp $ */ /* $Id: cmd-server-info.c,v 1.27 2009-09-03 21:02:55 tcunha Exp $ */
/* /*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> * 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)
*strchr(tim, '\n') = '\0'; *strchr(tim, '\n') = '\0';
ctx->print(ctx, ctx->print(ctx,
"tmux " BUILD ", pid %ld, started %s", (long) getpid(), tim); "tmux " BUILD ", pid %ld, started %s", (long) getpid(), tim);
ctx->print(ctx, "socket path %s, debug level %d%s", ctx->print(ctx, "socket path %s, debug level %d%s%s",
socket_path, debug_level, be_quiet ? ", quiet" : ""); socket_path, debug_level, be_quiet ? ", quiet" : "",
login_shell ? ", login shell" : "");
if (uname(&un) == 0) { if (uname(&un) == 0) {
ctx->print(ctx, "system is %s %s %s %s", ctx->print(ctx, "system is %s %s %s %s",
un.sysname, un.release, un.version, un.machine); un.sysname, un.release, un.version, un.machine);

8
tmux.1
View File

@ -1,4 +1,4 @@
.\" $Id: tmux.1,v 1.163 2009-09-03 20:44:38 tcunha Exp $ .\" $Id: tmux.1,v 1.164 2009-09-03 21:02:55 tcunha Exp $
.\" .\"
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> .\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
.\" .\"
@ -23,7 +23,7 @@
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm tmux .Nm tmux
.Bk -words .Bk -words
.Op Fl 28dqUuv .Op Fl 28dlqUuv
.Op Fl f Ar file .Op Fl f Ar file
.Op Fl L Ar socket-name .Op Fl L Ar socket-name
.Op Fl S Ar socket-path .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, If a command in the configuration file fails,
.Nm .Nm
will report an error and exit without executing further commands. 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 .It Fl L Ar socket-name
.Nm .Nm
stores the server socket in a directory under stores the server socket in a directory under

15
tmux.c
View File

@ -1,4 +1,4 @@
/* $Id: tmux.c,v 1.169 2009-09-03 20:44:38 tcunha Exp $ */ /* $Id: tmux.c,v 1.170 2009-09-03 21:02:55 tcunha Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -62,6 +62,7 @@ int debug_level;
int be_quiet; int be_quiet;
time_t start_time; time_t start_time;
char *socket_path; char *socket_path;
int login_shell;
__dead void usage(void); __dead void usage(void);
char *makesockpath(const char *); char *makesockpath(const char *);
@ -77,8 +78,8 @@ __dead void
usage(void) usage(void)
{ {
fprintf(stderr, fprintf(stderr,
"usage: %s [-28dqUuv] [-f file] [-L socket-name] [-S socket-path]\n" "usage: %s [-28dlqUuv] [-f file] [-L socket-name]\n"
" [command [flags]]\n", " [-S socket-path] [command [flags]]\n",
__progname); __progname);
exit(1); exit(1);
} }
@ -325,8 +326,9 @@ main(int argc, char **argv)
unlock = flags = 0; unlock = flags = 0;
label = path = NULL; label = path = NULL;
while ((opt = getopt(argc, argv, "28df:L:qS:uUv")) != -1) { login_shell = (**argv == '-');
switch (opt) { while ((opt = getopt(argc, argv, "28df:lL:qS:uUv")) != -1) {
switch (opt) {
case '2': case '2':
flags |= IDENTIFY_256COLOURS; flags |= IDENTIFY_256COLOURS;
flags &= ~IDENTIFY_88COLOURS; flags &= ~IDENTIFY_88COLOURS;
@ -343,6 +345,9 @@ main(int argc, char **argv)
xfree(cfg_file); xfree(cfg_file);
cfg_file = xstrdup(optarg); cfg_file = xstrdup(optarg);
break; break;
case 'l':
login_shell = 1;
break;
case 'L': case 'L':
if (label != NULL) if (label != NULL)
xfree(label); xfree(label);

3
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.435 2009-09-03 20:44:38 tcunha Exp $ */ /* $Id: tmux.h,v 1.436 2009-09-03 21:02:55 tcunha Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -1115,6 +1115,7 @@ extern int debug_level;
extern int be_quiet; extern int be_quiet;
extern time_t start_time; extern time_t start_time;
extern char *socket_path; extern char *socket_path;
extern int login_shell;
void logfile(const char *); void logfile(const char *);
void siginit(void); void siginit(void);
void sigreset(void); void sigreset(void);