summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client-fn.c18
-rw-r--r--client-msg.c15
-rw-r--r--client.c21
-rw-r--r--cmd-attach-session.c4
-rw-r--r--cmd-bind-key.c25
-rw-r--r--cmd-break-pane.c4
-rw-r--r--cmd-choose-session.c4
-rw-r--r--cmd-choose-window.c4
-rw-r--r--cmd-clear-history.c4
-rw-r--r--cmd-clock-mode.c4
-rw-r--r--cmd-command-prompt.c4
-rw-r--r--cmd-confirm-before.c4
-rw-r--r--cmd-copy-buffer.c27
-rw-r--r--cmd-copy-mode.c4
-rw-r--r--cmd-delete-buffer.c4
-rw-r--r--cmd-detach-client.c4
-rw-r--r--cmd-display-message.c4
-rw-r--r--cmd-down-pane.c4
-rw-r--r--cmd-find-window.c4
-rw-r--r--cmd-generic.c111
-rw-r--r--cmd-has-session.c4
-rw-r--r--cmd-if-shell.c27
-rw-r--r--cmd-kill-pane.c4
-rw-r--r--cmd-kill-server.c4
-rw-r--r--cmd-kill-session.c4
-rw-r--r--cmd-kill-window.c4
-rw-r--r--cmd-last-window.c4
-rw-r--r--cmd-link-window.c4
-rw-r--r--cmd-list-buffers.c4
-rw-r--r--cmd-list-clients.c4
-rw-r--r--cmd-list-commands.c4
-rw-r--r--cmd-list-keys.c4
-rw-r--r--cmd-list-sessions.c4
-rw-r--r--cmd-list-windows.c4
-rw-r--r--cmd-list.c37
-rw-r--r--cmd-load-buffer.c4
-rw-r--r--cmd-lock-server.c4
-rw-r--r--cmd-move-window.c4
-rw-r--r--cmd-new-session.c29
-rw-r--r--cmd-new-window.c29
-rw-r--r--cmd-next-layout.c4
-rw-r--r--cmd-next-window.c4
-rw-r--r--cmd-paste-buffer.c4
-rw-r--r--cmd-previous-layout.c4
-rw-r--r--cmd-previous-window.c4
-rw-r--r--cmd-refresh-client.c4
-rw-r--r--cmd-rename-session.c4
-rw-r--r--cmd-rename-window.c4
-rw-r--r--cmd-resize-pane.c4
-rw-r--r--cmd-respawn-window.c4
-rw-r--r--cmd-rotate-window.c4
-rw-r--r--cmd-save-buffer.c4
-rw-r--r--cmd-scroll-mode.c4
-rw-r--r--cmd-select-layout.c4
-rw-r--r--cmd-select-pane.c4
-rw-r--r--cmd-select-prompt.c4
-rw-r--r--cmd-select-window.c4
-rw-r--r--cmd-send-keys.c28
-rw-r--r--cmd-send-prefix.c4
-rw-r--r--cmd-server-info.c4
-rw-r--r--cmd-set-buffer.c4
-rw-r--r--cmd-set-option.c4
-rw-r--r--cmd-set-password.c25
-rw-r--r--cmd-set-window-option.c4
-rw-r--r--cmd-show-buffer.c4
-rw-r--r--cmd-show-options.c4
-rw-r--r--cmd-show-window-options.c4
-rw-r--r--cmd-source-file.c25
-rw-r--r--cmd-split-window.c27
-rw-r--r--cmd-start-server.c4
-rw-r--r--cmd-suspend-client.c4
-rw-r--r--cmd-swap-pane.c25
-rw-r--r--cmd-swap-window.c4
-rw-r--r--cmd-switch-client.c27
-rw-r--r--cmd-unbind-key.c23
-rw-r--r--cmd-unlink-window.c4
-rw-r--r--cmd-up-pane.c4
-rw-r--r--cmd.c142
-rw-r--r--server-fn.c13
-rw-r--r--server-msg.c95
-rw-r--r--tmux.c128
-rw-r--r--tmux.h60
82 files changed, 335 insertions, 862 deletions
diff --git a/client-fn.c b/client-fn.c
index 2e3ca11b..3030d3d3 100644
--- a/client-fn.c
+++ b/client-fn.c
@@ -1,4 +1,4 @@
-/* $Id: client-fn.c,v 1.6 2009-03-04 17:24:07 nicm Exp $ */
+/* $Id: client-fn.c,v 1.7 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -74,19 +74,3 @@ client_write_server(
if (buf != NULL && len > 0)
buffer_write(cctx->srv_out, buf, len);
}
-
-void
-client_write_server2(struct client_ctx *cctx,
- enum hdrtype type, void *buf1, size_t len1, void *buf2, size_t len2)
-{
- struct hdr hdr;
-
- hdr.type = type;
- hdr.size = len1 + len2;
- buffer_write(cctx->srv_out, &hdr, sizeof hdr);
-
- if (buf1 != NULL && len1 > 0)
- buffer_write(cctx->srv_out, buf1, len1);
- if (buf2 != NULL && len2 > 0)
- buffer_write(cctx->srv_out, buf2, len2);
-}
diff --git a/client-msg.c b/client-msg.c
index bf6080c5..5e7dc00a 100644
--- a/client-msg.c
+++ b/client-msg.c
@@ -1,4 +1,4 @@
-/* $Id: client-msg.c,v 1.21 2009-07-23 23:42:59 tcunha Exp $ */
+/* $Id: client-msg.c,v 1.22 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -70,16 +70,15 @@ client_msg_dispatch(struct client_ctx *cctx)
int
client_msg_fn_error(struct hdr *hdr, struct client_ctx *cctx)
{
- char *errstr;
+ struct msg_print_data data;
- if (hdr->size == SIZE_MAX)
- fatalx("bad MSG_ERROR size");
+ if (hdr->size < sizeof data)
+ fatalx("bad MSG_PRINT size");
+ buffer_read(cctx->srv_in, &data, sizeof data);
- errstr = xmalloc(hdr->size + 1);
- buffer_read(cctx->srv_in, errstr, hdr->size);
- errstr[hdr->size] = '\0';
+ data.msg[(sizeof data.msg) - 1] = '\0';
+ cctx->errstr = xstrdup(data.msg);
- cctx->errstr = errstr;
return (-1);
}
diff --git a/client.c b/client.c
index 34aad32d..a7afa80e 100644
--- a/client.c
+++ b/client.c
@@ -1,4 +1,4 @@
-/* $Id: client.c,v 1.56 2009-07-23 23:47:23 tcunha Exp $ */
+/* $Id: client.c,v 1.57 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -44,8 +44,7 @@ client_init(char *path, struct client_ctx *cctx, int cmdflags, int flags)
struct winsize ws;
size_t size;
int mode;
- struct buffer *b;
- char *name;
+ char *name, *term;
#ifdef HAVE_SETPROCTITLE
char rpathbuf[MAXPATHLEN];
#endif
@@ -107,20 +106,24 @@ server_started:
data.flags = flags;
data.sx = ws.ws_col;
data.sy = ws.ws_row;
- *data.tty = '\0';
+
if (getcwd(data.cwd, sizeof data.cwd) == NULL)
*data.cwd = '\0';
+ *data.term = '\0';
+ if ((term = getenv("TERM")) != NULL) {
+ if (strlcpy(data.term,
+ term, sizeof data.term) >= sizeof data.term)
+ *data.term = '\0';
+ }
+
+ *data.tty = '\0';
if ((name = ttyname(STDIN_FILENO)) == NULL)
fatal("ttyname failed");
if (strlcpy(data.tty, name, sizeof data.tty) >= sizeof data.tty)
fatalx("ttyname failed");
- b = buffer_create(BUFSIZ);
- cmd_send_string(b, getenv("TERM"));
- client_write_server2(cctx, MSG_IDENTIFY,
- &data, sizeof data, BUFFER_OUT(b), BUFFER_USED(b));
- buffer_destroy(b);
+ client_write_server(cctx, MSG_IDENTIFY, &data, sizeof data);
}
return (0);
diff --git a/cmd-attach-session.c b/cmd-attach-session.c
index 410c7062..0160f79e 100644
--- a/cmd-attach-session.c
+++ b/cmd-attach-session.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-attach-session.c,v 1.29 2009-07-23 13:25:27 tcunha Exp $ */
+/* $Id: cmd-attach-session.c,v 1.30 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -33,8 +33,6 @@ const struct cmd_entry cmd_attach_session_entry = {
cmd_target_init,
cmd_target_parse,
cmd_attach_session_exec,
- cmd_target_send,
- cmd_target_recv,
cmd_target_free,
cmd_target_print
};
diff --git a/cmd-bind-key.c b/cmd-bind-key.c
index 041a1f3d..d2fd9191 100644
--- a/cmd-bind-key.c
+++ b/cmd-bind-key.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-bind-key.c,v 1.23 2009-07-25 08:52:04 tcunha Exp $ */
+/* $Id: cmd-bind-key.c,v 1.24 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -26,8 +26,6 @@
int cmd_bind_key_parse(struct cmd *, int, char **, char **);
int cmd_bind_key_exec(struct cmd *, struct cmd_ctx *);
-void cmd_bind_key_send(struct cmd *, struct buffer *);
-void cmd_bind_key_recv(struct cmd *, struct buffer *);
void cmd_bind_key_free(struct cmd *);
size_t cmd_bind_key_print(struct cmd *, char *, size_t);
@@ -44,8 +42,6 @@ const struct cmd_entry cmd_bind_key_entry = {
NULL,
cmd_bind_key_parse,
cmd_bind_key_exec,
- cmd_bind_key_send,
- cmd_bind_key_recv,
cmd_bind_key_free,
cmd_bind_key_print
};
@@ -114,25 +110,6 @@ cmd_bind_key_exec(struct cmd *self, unused struct cmd_ctx *ctx)
}
void
-cmd_bind_key_send(struct cmd *self, struct buffer *b)
-{
- struct cmd_bind_key_data *data = self->data;
-
- buffer_write(b, data, sizeof *data);
- cmd_list_send(data->cmdlist, b);
-}
-
-void
-cmd_bind_key_recv(struct cmd *self, struct buffer *b)
-{
- struct cmd_bind_key_data *data;
-
- self->data = data = xmalloc(sizeof *data);
- buffer_read(b, data, sizeof *data);
- data->cmdlist = cmd_list_recv(b);
-}
-
-void
cmd_bind_key_free(struct cmd *self)
{
struct cmd_bind_key_data *data = self->data;
diff --git a/cmd-break-pane.c b/cmd-break-pane.c
index a1e195b9..a410b59e 100644
--- a/cmd-break-pane.c
+++ b/cmd-break-pane.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-break-pane.c,v 1.5 2009-07-20 15:42:05 tcunha Exp $ */
+/* $Id: cmd-break-pane.c,v 1.6 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -35,8 +35,6 @@ const struct cmd_entry cmd_break_pane_entry = {
cmd_pane_init,
cmd_pane_parse,
cmd_break_pane_exec,
- cmd_pane_send,
- cmd_pane_recv,
cmd_pane_free,
cmd_pane_print
};
diff --git a/cmd-choose-session.c b/cmd-choose-session.c
index 9e283a98..279b8c04 100644
--- a/cmd-choose-session.c
+++ b/cmd-choose-session.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-choose-session.c,v 1.9 2009-07-17 12:12:54 nicm Exp $ */
+/* $Id: cmd-choose-session.c,v 1.10 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -35,8 +35,6 @@ const struct cmd_entry cmd_choose_session_entry = {
cmd_target_init,
cmd_target_parse,
cmd_choose_session_exec,
- cmd_target_send,
- cmd_target_recv,
cmd_target_free,
cmd_target_print
};
diff --git a/cmd-choose-window.c b/cmd-choose-window.c
index ee49c769..3d5a74c5 100644
--- a/cmd-choose-window.c
+++ b/cmd-choose-window.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-choose-window.c,v 1.12 2009-07-20 15:42:05 tcunha Exp $ */
+/* $Id: cmd-choose-window.c,v 1.13 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -35,8 +35,6 @@ const struct cmd_entry cmd_choose_window_entry = {
cmd_target_init,
cmd_target_parse,
cmd_choose_window_exec,
- cmd_target_send,
- cmd_target_recv,
cmd_target_free,
cmd_target_print
};
diff --git a/cmd-clear-history.c b/cmd-clear-history.c
index a000d486..983611b3 100644
--- a/cmd-clear-history.c
+++ b/cmd-clear-history.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-clear-history.c,v 1.4 2009-07-14 06:43:32 nicm Exp $ */
+/* $Id: cmd-clear-history.c,v 1.5 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -33,8 +33,6 @@ const struct cmd_entry cmd_clear_history_entry = {
cmd_pane_init,
cmd_pane_parse,
cmd_clear_history_exec,
- cmd_pane_send,
- cmd_pane_recv,
cmd_pane_free,
cmd_pane_print
};
diff --git a/cmd-clock-mode.c b/cmd-clock-mode.c
index b1649d53..fd29bf97 100644
--- a/cmd-clock-mode.c
+++ b/cmd-clock-mode.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-clock-mode.c,v 1.4 2009-07-14 06:43:32 nicm Exp $ */
+/* $Id: cmd-clock-mode.c,v 1.5 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -33,8 +33,6 @@ const struct cmd_entry cmd_clock_mode_entry = {
cmd_target_init,
cmd_target_parse,
cmd_clock_mode_exec,
- cmd_target_send,
- cmd_target_recv,
cmd_target_free,
cmd_target_print
};
diff --git a/cmd-command-prompt.c b/cmd-command-prompt.c
index f50408b6..c7da9a2f 100644
--- a/cmd-command-prompt.c
+++ b/cmd-command-prompt.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-command-prompt.c,v 1.20 2009-07-20 15:51:32 tcunha Exp $ */
+/* $Id: cmd-command-prompt.c,v 1.21 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -40,8 +40,6 @@ const struct cmd_entry cmd_command_prompt_entry = {
cmd_command_prompt_init,
cmd_target_parse,
cmd_command_prompt_exec,
- cmd_target_send,
- cmd_target_recv,
cmd_target_free,
cmd_target_print
};
diff --git a/cmd-confirm-before.c b/cmd-confirm-before.c
index 9c2be86f..e1db383e 100644
--- a/cmd-confirm-before.c
+++ b/cmd-confirm-before.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-confirm-before.c,v 1.8 2009-07-22 17:38:11 tcunha Exp $ */
+/* $Id: cmd-confirm-before.c,v 1.9 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2009 Tiago Cunha <me@tiagocunha.org>
@@ -38,8 +38,6 @@ const struct cmd_entry cmd_confirm_before_entry = {
cmd_confirm_before_init,
cmd_target_parse,
cmd_confirm_before_exec,
- cmd_target_send,
- cmd_target_recv,
cmd_target_free,
cmd_target_print
};
diff --git a/cmd-copy-buffer.c b/cmd-copy-buffer.c
index 53538104..426d7778 100644
--- a/cmd-copy-buffer.c
+++ b/cmd-copy-buffer.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-copy-buffer.c,v 1.2 2009-07-14 06:43:32 nicm Exp $ */
+/* $Id: cmd-copy-buffer.c,v 1.3 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2009 Tiago Cunha <me@tiagocunha.org>
@@ -26,8 +26,6 @@
int cmd_copy_buffer_parse(struct cmd *, int, char **, char **);
int cmd_copy_buffer_exec(struct cmd *, struct cmd_ctx *);
-void cmd_copy_buffer_send(struct cmd *, struct buffer *);
-void cmd_copy_buffer_recv(struct cmd *, struct buffer *);
void cmd_copy_buffer_free(struct cmd *);
void cmd_copy_buffer_init(struct cmd *, int);
size_t cmd_copy_buffer_print(struct cmd *, char *, size_t);
@@ -46,8 +44,6 @@ const struct cmd_entry cmd_copy_buffer_entry = {
cmd_copy_buffer_init,
cmd_copy_buffer_parse,
cmd_copy_buffer_exec,
- cmd_copy_buffer_send,
- cmd_copy_buffer_recv,
cmd_copy_buffer_free,
cmd_copy_buffer_print
};
@@ -161,27 +157,6 @@ cmd_copy_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
}
void
-cmd_copy_buffer_send(struct cmd *self, struct buffer *b)
-{
- struct cmd_copy_buffer_data *data = self->data;
-
- buffer_write(b, data, sizeof *data);
- cmd_send_string(b, data->dst_session);
- cmd_send_string(b, data->src_session);
-}
-
-void
-cmd_copy_buffer_recv(struct cmd *self, struct buffer *b)
-{
- struct cmd_copy_buffer_data *data;
-
- self->data = data = xmalloc(sizeof *data);
- buffer_read(b, data, sizeof *data);
- data->dst_session = cmd_recv_string(b);
- data->src_session = cmd_recv_string(b);
-}
-
-void
cmd_copy_buffer_free(struct cmd *self)
{
struct cmd_copy_buffer_data *data = self->data;
diff --git a/cmd-copy-mode.c b/cmd-copy-mode.c
index 19486539..e4ca0c71 100644
--- a/cmd-copy-mode.c
+++ b/cmd-copy-mode.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-copy-mode.c,v 1.21 2009-07-14 06:43:32 nicm Exp $ */
+/* $Id: cmd-copy-mode.c,v 1.22 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -33,8 +33,6 @@ const struct cmd_entry cmd_copy_mode_entry = {
cmd_target_init,
cmd_target_parse,
cmd_copy_mode_exec,
- cmd_target_send,
- cmd_target_recv,
cmd_target_free,
NULL
};
diff --git a/cmd-delete-buffer.c b/cmd-delete-buffer.c
index 0b190eee..e9746eeb 100644
--- a/cmd-delete-buffer.c
+++ b/cmd-delete-buffer.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-delete-buffer.c,v 1.6 2009-07-14 06:43:32 nicm Exp $ */
+/* $Id: cmd-delete-buffer.c,v 1.7 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -35,8 +35,6 @@ const struct cmd_entry cmd_delete_buffer_entry = {
cmd_buffer_init,
cmd_buffer_parse,
cmd_delete_buffer_exec,
- cmd_buffer_send,
- cmd_buffer_recv,
cmd_buffer_free,
cmd_buffer_print
};
diff --git a/cmd-detach-client.c b/cmd-detach-client.c
index 67f85a1e..d973fa2f 100644
--- a/cmd-detach-client.c
+++ b/cmd-detach-client.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-detach-client.c,v 1.8 2009-07-14 06:43:32 nicm Exp $ */
+/* $Id: cmd-detach-client.c,v 1.9 2009-07-28 22:12:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -33,8 +33,6 @@ const struct cmd_entry cmd_detach_client_entry = {
cmd_target_init,
cmd_target_parse,
cmd_detach_client_exec,
- cmd_target_send,
- cmd_target_recv,
cmd_target_free,
cmd_target_print
};
diff --git a/cmd-display-message.c b/cmd-display-message.c
index ddc9cb31..dd37f6bd 100644
--- a/cmd-display-message.c
+++ b/cmd-display-message.c