version 1.43, 2017/04/22 06:13:30 |
version 1.44, 2018/07/11 08:29:21 |
|
|
cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item) |
cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item) |
{ |
{ |
struct args *args = self->args; |
struct args *args = self->args; |
struct client *c = item->client; |
struct client *c = cmd_find_client(item, NULL, 1); |
|
struct session *s = item->target.s; |
|
struct winlink *wl = item->target.wl; |
|
struct window_pane *wp = item->target.wp; |
struct paste_buffer *pb; |
struct paste_buffer *pb; |
const char *path, *bufname, *bufdata, *start, *end; |
const char *bufname, *bufdata, *start, *end, *flags; |
const char *flags; |
char *msg, *path, *file; |
char *msg, *file; |
|
size_t size, used, msglen, bufsize; |
size_t size, used, msglen, bufsize; |
FILE *f; |
FILE *f; |
|
|
|
|
bufdata = paste_buffer_data(pb, &bufsize); |
bufdata = paste_buffer_data(pb, &bufsize); |
|
|
if (self->entry == &cmd_show_buffer_entry) |
if (self->entry == &cmd_show_buffer_entry) |
path = "-"; |
path = xstrdup("-"); |
else |
else |
path = args->argv[0]; |
path = format_single(item, args->argv[0], c, s, wl, wp); |
if (strcmp(path, "-") == 0) { |
if (strcmp(path, "-") == 0) { |
|
free(path); |
|
c = item->client; |
if (c == NULL) { |
if (c == NULL) { |
cmdq_error(item, "can't write to stdout"); |
cmdq_error(item, "can't write to stdout"); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
|
|
|
|
fclose(f); |
fclose(f); |
free(file); |
free(file); |
|
free(path); |
|
|
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
|
|