summaryrefslogtreecommitdiff
path: root/usr.bin/tmux/client.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2020-09-22 05:23:35 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2020-09-22 05:23:35 +0000
commit70dd98ab60af24993997abcb78bbce47d54cab64 (patch)
tree65a4a82803f1576da627c4e45d76316d4adb0cdf /usr.bin/tmux/client.c
parentec61f22b41f5eac765432c49c55ba7a52d1a9c1d (diff)
Fix warnings on some platforms with %llx and add a new message to handle
64-bit client flags.
Diffstat (limited to 'usr.bin/tmux/client.c')
-rw-r--r--usr.bin/tmux/client.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/usr.bin/tmux/client.c b/usr.bin/tmux/client.c
index 228f4ac6531..ae57b2336b9 100644
--- a/usr.bin/tmux/client.c
+++ b/usr.bin/tmux/client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: client.c,v 1.148 2020/06/18 08:34:22 nicm Exp $ */
+/* $OpenBSD: client.c,v 1.149 2020/09/22 05:23:34 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -59,7 +59,8 @@ static struct client_files client_files = RB_INITIALIZER(&client_files);
static __dead void client_exec(const char *,const char *);
static int client_get_lock(char *);
-static int client_connect(struct event_base *, const char *, int);
+static int client_connect(struct event_base *, const char *,
+ uint64_t);
static void client_send_identify(const char *, const char *, int);
static void client_signal(int);
static void client_dispatch(struct imsg *, void *);
@@ -100,7 +101,7 @@ client_get_lock(char *lockfile)
/* Connect client to server. */
static int
-client_connect(struct event_base *base, const char *path, int flags)
+client_connect(struct event_base *base, const char *path, uint64_t flags)
{
struct sockaddr_un sa;
size_t size;
@@ -238,7 +239,8 @@ client_exit(void)
/* Client main loop. */
int
-client_main(struct event_base *base, int argc, char **argv, int flags, int feat)
+client_main(struct event_base *base, int argc, char **argv, uint64_t flags,
+ int feat)
{
struct cmd_parse_result *pr;
struct msg_command *data;
@@ -284,7 +286,7 @@ client_main(struct event_base *base, int argc, char **argv, int flags, int feat)
/* Save the flags. */
client_flags = flags;
- log_debug("flags are %#llx", client_flags);
+ log_debug("flags are %#llx", (unsigned long long)client_flags);
/* Initialize the client socket and start the server. */
fd = client_connect(base, socket_path, client_flags);
@@ -440,6 +442,8 @@ client_send_identify(const char *ttynam, const char *cwd, int feat)
pid_t pid;
proc_send(client_peer, MSG_IDENTIFY_FLAGS, -1, &flags, sizeof flags);
+ proc_send(client_peer, MSG_IDENTIFY_LONGFLAGS, -1, &client_flags,
+ sizeof client_flags);
if ((s = getenv("TERM")) == NULL)
s = "";
@@ -889,7 +893,8 @@ client_dispatch_wait(struct imsg *imsg)
fatalx("bad MSG_FLAGS string");
memcpy(&client_flags, data, sizeof client_flags);
- log_debug("new flags are %#llx", client_flags);
+ log_debug("new flags are %#llx",
+ (unsigned long long)client_flags);
break;
case MSG_SHELL:
if (datalen == 0 || data[datalen - 1] != '\0')
@@ -942,7 +947,8 @@ client_dispatch_attached(struct imsg *imsg)
fatalx("bad MSG_FLAGS string");
memcpy(&client_flags, data, sizeof client_flags);
- log_debug("new flags are %#llx", client_flags);
+ log_debug("new flags are %#llx",
+ (unsigned long long)client_flags);
break;
case MSG_DETACH:
case MSG_DETACHKILL: