summaryrefslogtreecommitdiffstats
path: root/cmd-set-buffer.c
diff options
context:
space:
mode:
authornicm <nicm>2015-08-29 09:25:00 +0000
committernicm <nicm>2015-08-29 09:25:00 +0000
commitb56958500036970023c7a53264331cd10a5bbed2 (patch)
tree4e919788d8f30a08c048d573449a79e03fc06cc1 /cmd-set-buffer.c
parentb9f0571780e7058a70a8cc3b6805b6f1a73061e0 (diff)
Move struct paste_buffer out of tmux.h.
Diffstat (limited to 'cmd-set-buffer.c')
-rw-r--r--cmd-set-buffer.c39
1 files changed, 17 insertions, 22 deletions
diff --git a/cmd-set-buffer.c b/cmd-set-buffer.c
index 0ec362b3..4fa7ca11 100644
--- a/cmd-set-buffer.c
+++ b/cmd-set-buffer.c
@@ -42,9 +42,9 @@ cmd_set_buffer_exec(struct cmd *self, struct cmd_q *cmdq)
{
struct args *args = self->args;
struct paste_buffer *pb;
- char *pdata, *cause;
- const char *bufname;
- size_t psize, newsize;
+ char *bufdata, *cause;
+ const char *bufname, *olddata;
+ size_t bufsize, newsize;
bufname = NULL;
@@ -58,12 +58,11 @@ cmd_set_buffer_exec(struct cmd *self, struct cmd_q *cmdq)
bufname = args_get(args, 'b');
if (bufname == NULL) {
- pb = paste_get_top();
+ pb = paste_get_top(&bufname);
if (pb == NULL) {
cmdq_error(cmdq, "no buffer");
return (CMD_RETURN_ERROR);
}
- bufname = pb->name;
}
if (paste_rename(bufname, args_get(args, 'n'), &cause) != 0) {
@@ -79,37 +78,33 @@ cmd_set_buffer_exec(struct cmd *self, struct cmd_q *cmdq)
cmdq_error(cmdq, "no data specified");
return (CMD_RETURN_ERROR);
}
-
- psize = 0;
- pdata = NULL;
-
pb = NULL;
+ bufsize = 0;
+ bufdata = NULL;
+
if ((newsize = strlen(args->argv[0])) == 0)
return (CMD_RETURN_NORMAL);
if (args_has(args, 'b')) {
bufname = args_get(args, 'b');
pb = paste_get_name(bufname);
- } else if (args_has(args, 'a')) {
- pb = paste_get_top();
- if (pb != NULL)
- bufname = pb->name;
- }
+ } else if (args_has(args, 'a'))
+ pb = paste_get_top(&bufname);
if (args_has(args, 'a') && pb != NULL) {
- psize = pb->size;
- pdata = xmalloc(psize);
- memcpy(pdata, pb->data, psize);
+ olddata = paste_buffer_data(pb, &bufsize);
+ bufdata = xmalloc(bufsize);
+ memcpy(bufdata, olddata, bufsize);
}
- pdata = xrealloc(pdata, psize + newsize);
- memcpy(pdata + psize, args->argv[0], newsize);
- psize += newsize;
+ bufdata = xrealloc(bufdata, bufsize + newsize);
+ memcpy(bufdata + bufsize, args->argv[0], newsize);
+ bufsize += newsize;
- if (paste_set(pdata, psize, bufname, &cause) != 0) {
+ if (paste_set(bufdata, bufsize, bufname, &cause) != 0) {
cmdq_error(cmdq, "%s", cause);
- free(pdata);
+ free(bufdata);
free(cause);
return (CMD_RETURN_ERROR);
}