Skip to content

Commit cfc8169

Browse files
author
nicm
committed
Expand formats in load-buffer and save-buffer.
1 parent e7d5302 commit cfc8169

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

cmd-load-buffer.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,26 @@ cmd_load_buffer_exec(struct cmd *self, struct cmdq_item *item)
5656
{
5757
struct args *args = self->args;
5858
struct cmd_load_buffer_data *cdata;
59-
struct client *c = item->client;
59+
struct client *c = cmd_find_client(item, NULL, 1);
60+
struct session *s = item->target.s;
61+
struct winlink *wl = item->target.wl;
62+
struct window_pane *wp = item->target.wp;
6063
FILE *f;
61-
const char *path, *bufname;
64+
const char *bufname;
6265
char *pdata = NULL, *new_pdata, *cause;
63-
char *file;
66+
char *path, *file;
6467
size_t psize;
6568
int ch, error;
6669

6770
bufname = NULL;
6871
if (args_has(args, 'b'))
6972
bufname = args_get(args, 'b');
7073

71-
path = args->argv[0];
74+
path = format_single(item, args->argv[0], c, s, wl, wp);
7275
if (strcmp(path, "-") == 0) {
76+
free(path);
77+
c = item->client;
78+
7379
cdata = xcalloc(1, sizeof *cdata);
7480
cdata->item = item;
7581

cmd-save-buffer.c

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,13 @@ static enum cmd_retval
6060
cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item)
6161
{
6262
struct args *args = self->args;
63-
struct client *c = item->client;
63+
struct client *c = cmd_find_client(item, NULL, 1);
64+
struct session *s = item->target.s;
65+
struct winlink *wl = item->target.wl;
66+
struct window_pane *wp = item->target.wp;
6467
struct paste_buffer *pb;
65-
const char *path, *bufname, *bufdata, *start, *end;
66-
const char *flags;
67-
char *msg, *file;
68+
const char *bufname, *bufdata, *start, *end, *flags;
69+
char *msg, *path, *file;
6870
size_t size, used, msglen, bufsize;
6971
FILE *f;
7072

@@ -84,10 +86,12 @@ cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item)
8486
bufdata = paste_buffer_data(pb, &bufsize);
8587

8688
if (self->entry == &cmd_show_buffer_entry)
87-
path = "-";
89+
path = xstrdup("-");
8890
else
89-
path = args->argv[0];
91+
path = format_single(item, args->argv[0], c, s, wl, wp);
9092
if (strcmp(path, "-") == 0) {
93+
free(path);
94+
c = item->client;
9195
if (c == NULL) {
9296
cmdq_error(item, "can't write to stdout");
9397
return (CMD_RETURN_ERROR);
@@ -118,6 +122,7 @@ cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item)
118122

119123
fclose(f);
120124
free(file);
125+
free(path);
121126

122127
return (CMD_RETURN_NORMAL);
123128

0 commit comments

Comments
 (0)