diff options
author | Thomas Adam <thomas@xteddy.org> | 2021-10-20 14:01:15 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2021-10-20 14:01:15 +0100 |
commit | 1bf2f811ea8835dd24bdb773b5be4df517767d1f (patch) | |
tree | 0c9b68c65c797a0cb14fb9dbf8a34f4dfa299e2c /cmd-display-menu.c | |
parent | 65bb36d6bdec631cbab33ae6896e1dad29a8fffe (diff) | |
parent | acba07629ebf2dc2f0c316f110493e720b30757c (diff) | |
download | rtmux-1bf2f811ea8835dd24bdb773b5be4df517767d1f.tar.gz rtmux-1bf2f811ea8835dd24bdb773b5be4df517767d1f.tar.bz2 rtmux-1bf2f811ea8835dd24bdb773b5be4df517767d1f.zip |
Merge branch 'obsd-master' into master
Diffstat (limited to 'cmd-display-menu.c')
-rw-r--r-- | cmd-display-menu.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/cmd-display-menu.c b/cmd-display-menu.c index f7a2d547..b20c0303 100644 --- a/cmd-display-menu.c +++ b/cmd-display-menu.c @@ -52,10 +52,10 @@ const struct cmd_entry cmd_display_popup_entry = { .name = "display-popup", .alias = "popup", - .args = { "Bb:Cc:d:e:Eh:t:w:x:y:", 0, -1, NULL }, + .args = { "Bb:Cc:d:e:Eh:t:T:w:x:y:", 0, -1, NULL }, .usage = "[-BCE] [-b border-lines] [-c target-client] " "[-d start-directory] [-e environment] [-h height] " - CMD_TARGET_PANE_USAGE " " + CMD_TARGET_PANE_USAGE " [-T title] " "[-w width] [-x position] [-y position] [shell-command]", .target = { 't', CMD_FIND_PANE, 0 }, @@ -354,7 +354,7 @@ cmd_display_popup_exec(struct cmd *self, struct cmdq_item *item) struct client *tc = cmdq_get_target_client(item); struct tty *tty = &tc->tty; const char *value, *shell, *shellcmd = NULL; - char *cwd, *cause = NULL, **argv = NULL; + char *cwd, *cause = NULL, **argv = NULL, *title; int flags = 0, argc = 0; enum box_lines lines = BOX_LINES_DEFAULT; u_int px, py, w, h, count = args_count(args); @@ -438,19 +438,25 @@ cmd_display_popup_exec(struct cmd *self, struct cmdq_item *item) } } + if (args_has(args, 'T')) + title = format_single_from_target(item, args_get(args, 'T')); + else + title = xstrdup(""); if (args_has(args, 'E') > 1) flags |= POPUP_CLOSEEXITZERO; else if (args_has(args, 'E')) flags |= POPUP_CLOSEEXIT; if (popup_display(flags, lines, item, px, py, w, h, env, shellcmd, argc, - argv, cwd, tc, s, NULL, NULL) != 0) { + argv, cwd, title, tc, s, NULL, NULL) != 0) { cmd_free_argv(argc, argv); if (env != NULL) environ_free(env); + free(title); return (CMD_RETURN_NORMAL); } if (env != NULL) environ_free(env); + free(title); cmd_free_argv(argc, argv); return (CMD_RETURN_WAIT); } |