Skip to content

Commit 9488d4b

Browse files
committed
svn update
1 parent ffc1cdf commit 9488d4b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+298
-189
lines changed

arguments.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ args_strtonum(struct args *args,
204204
u_char ch, long long minval, long long maxval, char **cause)
205205
{
206206
const char *errstr;
207-
long long ll;
207+
long long ll;
208208

209209
if (!args_has(args, ch)) {
210210
*cause = xstrdup("missing");

cfg.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
void printflike2 cfg_print(struct cmd_ctx *, const char *, ...);
3434
void printflike2 cfg_error(struct cmd_ctx *, const char *, ...);
3535

36-
char *cfg_cause;
37-
int cfg_finished;
36+
char *cfg_cause;
37+
int cfg_finished;
3838
struct causelist cfg_causes = ARRAY_INITIALIZER;
3939

4040
/* ARGSUSED */

cmd-capture-pane.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ cmd_capture_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
4444
{
4545
struct args *args = self->args;
4646
struct window_pane *wp;
47-
char *buf, *line, *cause;
47+
char *buf, *line, *cause;
4848
struct screen *s;
4949
struct grid *gd;
5050
int buffer, n;
5151
u_int i, limit, top, bottom, tmp;
52-
size_t len, linelen;
52+
size_t len, linelen;
5353

5454
if (cmd_find_pane(ctx, args_get(args, 't'), NULL, &wp) == NULL)
5555
return (-1);

cmd-choose-client.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const struct cmd_entry cmd_choose_client_entry = {
4343

4444
struct cmd_choose_client_data {
4545
struct client *client;
46-
char *template;
46+
char *template;
4747
};
4848

4949
int
@@ -53,7 +53,7 @@ cmd_choose_client_exec(struct cmd *self, struct cmd_ctx *ctx)
5353
struct cmd_choose_client_data *cdata;
5454
struct winlink *wl;
5555
struct client *c;
56-
u_int i, idx, cur;
56+
u_int i, idx, cur;
5757

5858
if (ctx->curclient == NULL) {
5959
ctx->error(ctx, "must be run interactively");
@@ -101,7 +101,7 @@ void
101101
cmd_choose_client_callback(void *data, int idx)
102102
{
103103
struct cmd_choose_client_data *cdata = data;
104-
struct client *c;
104+
struct client *c;
105105
struct cmd_list *cmdlist;
106106
struct cmd_ctx ctx;
107107
char *template, *cause;

cmd-choose-session.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const struct cmd_entry cmd_choose_session_entry = {
4343

4444
struct cmd_choose_session_data {
4545
struct client *client;
46-
char *template;
46+
char *template;
4747
};
4848

4949
int
@@ -54,7 +54,7 @@ cmd_choose_session_exec(struct cmd *self, struct cmd_ctx *ctx)
5454
struct winlink *wl;
5555
struct session *s;
5656
struct session_group *sg;
57-
u_int idx, sgidx, cur;
57+
u_int idx, sgidx, cur;
5858
char tmp[64];
5959

6060
if (ctx->curclient == NULL) {

cmd-choose-window.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const struct cmd_entry cmd_choose_window_entry = {
4444
struct cmd_choose_window_data {
4545
struct client *client;
4646
struct session *session;
47-
char *template;
47+
char *template;
4848
};
4949

5050
int
@@ -55,7 +55,7 @@ cmd_choose_window_exec(struct cmd *self, struct cmd_ctx *ctx)
5555
struct session *s;
5656
struct winlink *wl, *wm;
5757
struct window *w;
58-
u_int idx, cur;
58+
u_int idx, cur;
5959
char *flags, *title;
6060
const char *left, *right;
6161

cmd-confirm-before.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ cmd_confirm_before_callback(void *data, const char *s)
107107
struct cmd_confirm_before_data *cdata = data;
108108
struct client *c = cdata->c;
109109
struct cmd_list *cmdlist;
110-
struct cmd_ctx ctx;
110+
struct cmd_ctx ctx;
111111
char *cause;
112112

113113
if (s == NULL || *s == '\0')

cmd-detach-client.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ cmd_detach_client_exec(struct cmd *self, struct cmd_ctx *ctx)
4141
{
4242
struct args *args = self->args;
4343
struct client *c;
44-
struct session *s;
44+
struct session *s;
4545
enum msgtype msgtype;
46-
u_int i;
46+
u_int i;
4747

4848
if (args_has(args, 'P'))
4949
msgtype = MSG_DETACHKILL;

cmd-display-message.c

+5-2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ cmd_display_message_exec(struct cmd *self, struct cmd_ctx *ctx)
5151
struct format_tree *ft;
5252
char out[BUFSIZ];
5353
time_t t;
54+
size_t len;
5455

5556
if ((c = cmd_find_client(ctx, args_get(args, 'c'))) == NULL)
5657
return (-1);
@@ -83,14 +84,16 @@ cmd_display_message_exec(struct cmd *self, struct cmd_ctx *ctx)
8384
format_window_pane(ft, wp);
8485

8586
t = time(NULL);
86-
strftime(out, sizeof out, template, localtime(&t));
87+
len = strftime(out, sizeof out, template, localtime(&t));
88+
out[len] = '\0';
8789

8890
msg = format_expand(ft, out);
8991
if (args_has(self->args, 'p'))
9092
ctx->print(ctx, "%s", msg);
9193
else
9294
status_message_set(c, "%s", msg);
93-
xfree(msg);
9495

96+
xfree(msg);
97+
format_free(ft);
9598
return (0);
9699
}

cmd-find-window.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ cmd_find_window_exec(struct cmd *self, struct cmd_ctx *ctx)
5555
struct winlink *wl, *wm;
5656
struct window *w;
5757
struct window_pane *wp;
58-
ARRAY_DECL(, u_int) list_idx;
59-
ARRAY_DECL(, char *) list_ctx;
58+
ARRAY_DECL(, u_int) list_idx;
59+
ARRAY_DECL(, char *) list_ctx;
6060
char *str, *sres, *sctx, *searchstr;
6161
u_int i, line;
6262

cmd-list-clients.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const struct cmd_entry cmd_list_clients_entry = {
4343
int
4444
cmd_list_clients_exec(struct cmd *self, struct cmd_ctx *ctx)
4545
{
46-
struct args *args = self->args;
46+
struct args *args = self->args;
4747
struct client *c;
4848
struct session *s;
4949
struct format_tree *ft;

cmd-list-commands.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ const struct cmd_entry cmd_list_commands_entry = {
4040
int
4141
cmd_list_commands_exec(unused struct cmd *self, struct cmd_ctx *ctx)
4242
{
43-
const struct cmd_entry **entryp;
43+
const struct cmd_entry **entryp;
4444

4545
for (entryp = cmd_table; *entryp != NULL; entryp++)
4646
ctx->print(ctx, "%s %s", (*entryp)->name, (*entryp)->usage);

cmd-list-keys.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ cmd_list_keys_table(struct cmd *self, struct cmd_ctx *ctx)
106106
const struct mode_key_table *mtab;
107107
struct mode_key_binding *mbind;
108108
const char *key, *cmdstr, *mode;
109-
int width, keywidth, any_mode;
109+
int width, keywidth, any_mode;
110110

111111
tablename = args_get(args, 't');
112112
if ((mtab = mode_key_findtable(tablename)) == NULL) {

cmd-list-sessions.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ cmd_list_sessions_exec(struct cmd *self, struct cmd_ctx *ctx)
4444
{
4545
struct args *args = self->args;
4646
struct session *s;
47-
u_int n;
47+
u_int n;
4848
struct format_tree *ft;
4949
const char *template;
5050
char *line;

cmd-new-window.c

+31-11
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ int cmd_new_window_exec(struct cmd *, struct cmd_ctx *);
3030

3131
const struct cmd_entry cmd_new_window_entry = {
3232
"new-window", "neww",
33-
"ac:dkn:Pt:", 0, 1,
34-
"[-adk] [-c start-directory] [-n window-name] [-t target-window] "
35-
"[command]",
33+
"ac:dF:kn:Pt:", 0, 1,
34+
"[-adkP] [-c start-directory] [-F format] [-n window-name] "
35+
"[-t target-window] [command]",
3636
0,
3737
NULL,
3838
NULL,
@@ -42,12 +42,16 @@ const struct cmd_entry cmd_new_window_entry = {
4242
int
4343
cmd_new_window_exec(struct cmd *self, struct cmd_ctx *ctx)
4444
{
45-
struct args *args = self->args;
46-
struct session *s;
47-
struct winlink *wl;
48-
const char *cmd, *cwd;
49-
char *cause;
50-
int idx, last, detached;
45+
struct args *args = self->args;
46+
struct session *s;
47+
struct winlink *wl;
48+
struct client *c;
49+
const char *cmd, *cwd;
50+
const char *template;
51+
char *cause;
52+
int idx, last, detached;
53+
struct format_tree *ft;
54+
char *cp;
5155

5256
if (args_has(args, 'a')) {
5357
wl = cmd_find_window(ctx, args_get(args, 't'), &s);
@@ -116,7 +120,23 @@ cmd_new_window_exec(struct cmd *self, struct cmd_ctx *ctx)
116120
} else
117121
server_status_session_group(s);
118122

119-
if (args_has(args, 'P'))
120-
ctx->print(ctx, "%s:%u", s->name, wl->idx);
123+
if (args_has(args, 'P')) {
124+
template = "#{session_name}:#{window_index}";
125+
if (args_has(args, 'F'))
126+
template = args_get(args, 'F');
127+
128+
ft = format_create();
129+
if ((c = cmd_find_client(ctx, NULL)) != NULL)
130+
format_client(ft, c);
131+
format_session(ft, s);
132+
format_winlink(ft, s, wl);
133+
134+
cp = format_expand(ft, template);
135+
ctx->print(ctx, "%s", cp);
136+
xfree(cp);
137+
138+
format_free(ft);
139+
}
140+
121141
return (0);
122142
}

cmd-paste-buffer.c

+16-7
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@
2929

3030
int cmd_paste_buffer_exec(struct cmd *, struct cmd_ctx *);
3131

32-
void cmd_paste_buffer_filter(
33-
struct window_pane *, const char *, size_t, const char *);
32+
void cmd_paste_buffer_filter(struct window_pane *,
33+
const char *, size_t, const char *, int bracket);
3434

3535
const struct cmd_entry cmd_paste_buffer_entry = {
3636
"paste-buffer", "pasteb",
37-
"db:rs:t:", 0, 0,
38-
"[-dr] [-s separator] [-b buffer-index] [-t target-pane]",
37+
"db:prs:t:", 0, 0,
38+
"[-dpr] [-s separator] [-b buffer-index] [-t target-pane]",
3939
0,
4040
NULL,
4141
NULL,
@@ -52,6 +52,7 @@ cmd_paste_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
5252
const char *sepstr;
5353
char *cause;
5454
int buffer;
55+
int pflag;
5556

5657
if (cmd_find_pane(ctx, args_get(args, 't'), &s, &wp) == NULL)
5758
return (-1);
@@ -85,7 +86,9 @@ cmd_paste_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
8586
else
8687
sepstr = "\r";
8788
}
88-
cmd_paste_buffer_filter(wp, pb->data, pb->size, sepstr);
89+
pflag = args_has(args, 'p') &&
90+
(wp->screen->mode & MODE_BRACKETPASTE);
91+
cmd_paste_buffer_filter(wp, pb->data, pb->size, sepstr, pflag);
8992
}
9093

9194
/* Delete the buffer if -d. */
@@ -101,13 +104,16 @@ cmd_paste_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
101104

102105
/* Add bytes to a buffer and filter '\n' according to separator. */
103106
void
104-
cmd_paste_buffer_filter(
105-
struct window_pane *wp, const char *data, size_t size, const char *sep)
107+
cmd_paste_buffer_filter(struct window_pane *wp,
108+
const char *data, size_t size, const char *sep, int bracket)
106109
{
107110
const char *end = data + size;
108111
const char *lf;
109112
size_t seplen;
110113

114+
if (bracket)
115+
bufferevent_write(wp->event, "\033[200~", 6);
116+
111117
seplen = strlen(sep);
112118
while ((lf = memchr(data, '\n', end - data)) != NULL) {
113119
if (lf != data)
@@ -118,4 +124,7 @@ cmd_paste_buffer_filter(
118124

119125
if (end != data)
120126
bufferevent_write(wp->event, data, end - data);
127+
128+
if (bracket)
129+
bufferevent_write(wp->event, "\033[201~", 6);
121130
}

cmd-resize-pane.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ cmd_resize_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
8686
{
8787
struct args *args = self->args;
8888
struct winlink *wl;
89-
const char *errstr;
89+
const char *errstr;
9090
struct window_pane *wp;
9191
u_int adjust;
9292

cmd-respawn-window.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ cmd_respawn_window_exec(struct cmd *self, struct cmd_ctx *ctx)
4848
struct session *s;
4949
struct environ env;
5050
const char *cmd;
51-
char *cause;
51+
char *cause;
5252

5353
if ((wl = cmd_find_window(ctx, args_get(args, 't'), &s)) == NULL)
5454
return (-1);

cmd-server-info.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ cmd_server_info_exec(unused struct cmd *self, struct cmd_ctx *ctx)
5858
struct job *job;
5959
struct grid *gd;
6060
struct grid_line *gl;
61-
u_int i, j, k;
61+
u_int i, j, k;
6262
char out[80];
6363
char *tim;
64-
time_t t;
64+
time_t t;
6565
u_int lines, ulines;
6666
size_t size, usize;
6767

cmd-set-option.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ cmd_set_option_number(unused struct cmd *self, struct cmd_ctx *ctx,
251251
const struct options_table_entry *oe, struct options *oo, const char *value)
252252
{
253253
long long ll;
254-
const char *errstr;
254+
const char *errstr;
255255

256256
ll = strtonum(value, oe->minimum, oe->maximum, &errstr);
257257
if (errstr != NULL) {

0 commit comments

Comments
 (0)