version 1.24, 2014/04/24 09:14:43 |
version 1.25, 2014/05/13 07:34:35 |
|
|
const struct cmd_entry cmd_paste_buffer_entry = { |
const struct cmd_entry cmd_paste_buffer_entry = { |
"paste-buffer", "pasteb", |
"paste-buffer", "pasteb", |
"db:prs:t:", 0, 0, |
"db:prs:t:", 0, 0, |
"[-dpr] [-s separator] [-b buffer-index] " CMD_TARGET_PANE_USAGE, |
"[-dpr] [-s separator] " CMD_BUFFER_USAGE " " CMD_TARGET_PANE_USAGE, |
0, |
0, |
NULL, |
NULL, |
cmd_paste_buffer_exec |
cmd_paste_buffer_exec |
|
|
struct window_pane *wp; |
struct window_pane *wp; |
struct session *s; |
struct session *s; |
struct paste_buffer *pb; |
struct paste_buffer *pb; |
const char *sepstr; |
const char *sepstr, *bufname; |
char *cause; |
|
int buffer; |
|
int pflag; |
int pflag; |
|
|
if (cmd_find_pane(cmdq, args_get(args, 't'), &s, &wp) == NULL) |
if (cmd_find_pane(cmdq, args_get(args, 't'), &s, &wp) == NULL) |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
|
|
if (!args_has(args, 'b')) |
bufname = NULL; |
buffer = -1; |
if (args_has(args, 'b')) |
else { |
bufname = args_get(args, 'b'); |
buffer = args_strtonum(args, 'b', 0, INT_MAX, &cause); |
|
if (cause != NULL) { |
|
cmdq_error(cmdq, "buffer %s", cause); |
|
free(cause); |
|
return (CMD_RETURN_ERROR); |
|
} |
|
} |
|
|
|
if (buffer == -1) |
if (bufname == NULL) |
pb = paste_get_top(); |
pb = paste_get_top(); |
else { |
else { |
pb = paste_get_index(buffer); |
pb = paste_get_name(bufname); |
if (pb == NULL) { |
if (pb == NULL) { |
cmdq_error(cmdq, "no buffer %d", buffer); |
cmdq_error(cmdq, "no buffer %s", bufname); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
} |
} |
|
|
|
|
/* Delete the buffer if -d. */ |
/* Delete the buffer if -d. */ |
if (args_has(args, 'd')) { |
if (args_has(args, 'd')) { |
if (buffer == -1) |
if (bufname == NULL) |
paste_free_top(); |
paste_free_top(); |
else |
else |
paste_free_index(buffer); |
paste_free_name(bufname); |
} |
} |
|
|
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |