summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2012-09-24 17:55:06 +0100
committerThomas Adam <thomas@xteddy.org>2012-09-24 17:55:06 +0100
commite342304134b8012ae62cb627dc9e322411dd48b1 (patch)
tree822f7301a0a7ee9f46a1906e6b565bb490c2b7dd
parentd785c37ee277457433daf1553424b1d815f9e2f9 (diff)
parent84612a8196341839c5a18362b68047aa1b011a50 (diff)
Merge branch 'obsd-master'
Conflicts: cmd.c format.c osdep-openbsd.c tmux.h
-rw-r--r--control.c9
-rw-r--r--osdep-openbsd.c4
-rw-r--r--tmux.h1
3 files changed, 13 insertions, 1 deletions
diff --git a/control.c b/control.c
index 91972261..b5ec6bdb 100644
--- a/control.c
+++ b/control.c
@@ -79,6 +79,15 @@ control_write(struct client *c, const char *fmt, ...)
server_push_stdout(c);
}
+/* Write a buffer, adding a terminal newline. Empties buffer. */
+void
+control_write_buffer(struct client *c, struct evbuffer *buffer)
+{
+ evbuffer_add_buffer(c->stdout_data, buffer);
+ evbuffer_add(c->stdout_data, "\n", 1);
+ server_push_stdout(c);
+}
+
/* Control input callback. Read lines and fire commands. */
void
control_callback(struct client *c, int closed, unused void *data)
diff --git a/osdep-openbsd.c b/osdep-openbsd.c
index 4fb75bff..402b501c 100644
--- a/osdep-openbsd.c
+++ b/osdep-openbsd.c
@@ -137,10 +137,12 @@ error:
char*
osdep_get_cwd(pid_t pid)
{
- int name[] = { CTL_KERN, KERN_PROC_CWD, (int)pid };
+ int name[] = { CTL_KERN, KERN_PROC_CWD, 0 };
static char path[MAXPATHLEN];
size_t pathlen = sizeof path;
+ if ((name[2] = tcgetpgrp(fd)) == -1)
+ return (NULL);
if (sysctl(name, 3, path, &pathlen, NULL, 0) != 0)
return (NULL);
return (path);
diff --git a/tmux.h b/tmux.h
index 9374012b..83bcb878 100644
--- a/tmux.h
+++ b/tmux.h
@@ -2217,6 +2217,7 @@ void clear_signals(int);
/* control.c */
void control_callback(struct client *, int, void*);
void printflike2 control_write(struct client *, const char *, ...);
+void control_write_buffer(struct client *, struct evbuffer *);
/* control-notify.c */
void control_notify_window_layout_changed(struct window *);