Skip to content

Commit 711b816

Browse files
committed
Merge branch 'obsd-master'
2 parents 35985c0 + cfc8169 commit 711b816

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
@@ -59,11 +59,13 @@ static enum cmd_retval
5959
cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item)
6060
{
6161
struct args *args = self->args;
62-
struct client *c = item->client;
62+
struct client *c = cmd_find_client(item, NULL, 1);
63+
struct session *s = item->target.s;
64+
struct winlink *wl = item->target.wl;
65+
struct window_pane *wp = item->target.wp;
6366
struct paste_buffer *pb;
64-
const char *path, *bufname, *bufdata, *start, *end;
65-
const char *flags;
66-
char *msg, *file;
67+
const char *bufname, *bufdata, *start, *end, *flags;
68+
char *msg, *path, *file;
6769
size_t size, used, msglen, bufsize;
6870
FILE *f;
6971

@@ -83,10 +85,12 @@ cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item)
8385
bufdata = paste_buffer_data(pb, &bufsize);
8486

8587
if (self->entry == &cmd_show_buffer_entry)
86-
path = "-";
88+
path = xstrdup("-");
8789
else
88-
path = args->argv[0];
90+
path = format_single(item, args->argv[0], c, s, wl, wp);
8991
if (strcmp(path, "-") == 0) {
92+
free(path);
93+
c = item->client;
9094
if (c == NULL) {
9195
cmdq_error(item, "can't write to stdout");
9296
return (CMD_RETURN_ERROR);
@@ -117,6 +121,7 @@ cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item)
117121

118122
fclose(f);
119123
free(file);
124+
free(path);
120125

121126
return (CMD_RETURN_NORMAL);
122127

0 commit comments

Comments
 (0)