aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2009-10-23 17:40:23 +0000
committerTiago Cunha <tcunha@gmx.com>2009-10-23 17:40:23 +0000
commitdbefea339fae0ed62d644f8e91de3f2142ff2424 (patch)
tree5946da34baf5ab810c792deca80ae34fd5ab32f7
parent9260888d1c7861184f9c15d1ea6bb3d2cbce4b35 (diff)
downloadrtmux-dbefea339fae0ed62d644f8e91de3f2142ff2424.tar.gz
rtmux-dbefea339fae0ed62d644f8e91de3f2142ff2424.tar.bz2
rtmux-dbefea339fae0ed62d644f8e91de3f2142ff2424.zip
Sync OpenBSD patchset 436:
Merge prepare_cmd into main as it is short and only called once.
-rw-r--r--tmux.c66
1 files changed, 29 insertions, 37 deletions
diff --git a/tmux.c b/tmux.c
index 311c5d1e..c1450645 100644
--- a/tmux.c
+++ b/tmux.c
@@ -1,4 +1,4 @@
-/* $Id: tmux.c,v 1.179 2009-10-23 17:32:26 tcunha Exp $ */
+/* $Id: tmux.c,v 1.180 2009-10-23 17:40:23 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -60,7 +60,6 @@ int login_shell;
__dead void usage(void);
void fill_session(struct msg_command_data *);
char *makesockpath(const char *);
-int prepare_cmd(enum msgtype *, void **, size_t *, int, char **);
int dispatch_imsg(struct imsgbuf *, const char *, int *);
__dead void shell_exec(const char *, const char *);
@@ -292,41 +291,22 @@ makesockpath(const char *label)
}
int
-prepare_cmd(enum msgtype *msg, void **buf, size_t *len, int argc, char **argv)
-{
- static struct msg_command_data cmddata;
-
- fill_session(&cmddata);
-
- cmddata.argc = argc;
- if (cmd_pack_argv(argc, argv, cmddata.argv, sizeof cmddata.argv) != 0) {
- log_warnx("command too long");
- return (-1);
- }
-
- *buf = &cmddata;
- *len = sizeof cmddata;
-
- *msg = MSG_COMMAND;
- return (0);
-}
-
-int
main(int argc, char **argv)
{
- struct cmd_list *cmdlist;
- struct cmd *cmd;
- struct pollfd pfd;
- enum msgtype msg;
- struct passwd *pw;
- struct options *so, *wo;
- struct keylist *keylist;
- struct imsgbuf *ibuf;
- char *s, *shellcmd, *path, *label, *home, *cause;
- char cwd[MAXPATHLEN], **var;
- void *buf;
- size_t len;
- int nfds, retcode, opt, flags, cmdflags = 0;
+ struct cmd_list *cmdlist;
+ struct cmd *cmd;
+ struct pollfd pfd;
+ enum msgtype msg;
+ struct passwd *pw;
+ struct options *so, *wo;
+ struct keylist *keylist;
+ struct imsgbuf *ibuf;
+ struct msg_command_data cmddata;
+ char *s, *shellcmd, *path, *label, *home, *cause;
+ char cwd[MAXPATHLEN], **var;
+ void *buf;
+ size_t len;
+ int nfds, retcode, opt, flags, cmdflags = 0;
flags = 0;
shellcmd = label = path = NULL;
@@ -538,8 +518,20 @@ main(int argc, char **argv)
msg = MSG_SHELL;
buf = NULL;
len = 0;
- } else if (prepare_cmd(&msg, &buf, &len, argc, argv) != 0)
- exit(1);
+ } else {
+ fill_session(&cmddata);
+
+ cmddata.argc = argc;
+ if (cmd_pack_argv(
+ argc, argv, cmddata.argv, sizeof cmddata.argv) != 0) {
+ log_warnx("command too long");
+ exit(1);
+ }
+
+ msg = MSG_COMMAND;
+ buf = &cmddata;
+ len = sizeof cmddata;
+ }
if (shellcmd != NULL)
cmdflags |= CMD_STARTSERVER;