From 9880114aff0b48649f00266125da1dc3c94a70eb Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sat, 8 Mar 2014 08:53:48 +0000 Subject: Make -a append to top buffer if -b is not specified. --- cmd-set-buffer.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'cmd-set-buffer.c') diff --git a/cmd-set-buffer.c b/cmd-set-buffer.c index 30a137cd..0e754bb6 100644 --- a/cmd-set-buffer.c +++ b/cmd-set-buffer.c @@ -53,6 +53,9 @@ cmd_set_buffer_exec(struct cmd *self, struct cmd_q *cmdq) psize = 0; pdata = NULL; + pb = NULL; + buffer = -1; + if (args_has(args, 'b')) { buffer = args_strtonum(args, 'b', 0, INT_MAX, &cause); if (cause != NULL) { @@ -65,13 +68,17 @@ cmd_set_buffer_exec(struct cmd *self, struct cmd_q *cmdq) cmdq_error(cmdq, "no buffer %d", buffer); return (CMD_RETURN_ERROR); } - if (args_has(args, 'a')) { - psize = pb->size; - pdata = xmalloc(psize); - memcpy(pdata, pb->data, psize); - } - } else - buffer = -1; + } else if (args_has(args, 'a')) { + pb = paste_get_top(&global_buffers); + if (pb != NULL) + buffer = 0; + } + + if (args_has(args, 'a') && pb != NULL) { + psize = pb->size; + pdata = xmalloc(psize); + memcpy(pdata, pb->data, psize); + } newsize = strlen(args->argv[0]); -- cgit