version 1.35, 2021/10/14 13:19:01 |
version 1.36, 2021/10/20 09:50:40 |
|
|
.name = "display-popup", |
.name = "display-popup", |
.alias = "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] " |
.usage = "[-BCE] [-b border-lines] [-c target-client] " |
"[-d start-directory] [-e environment] [-h height] " |
"[-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]", |
"[-w width] [-x position] [-y position] [shell-command]", |
|
|
.target = { 't', CMD_FIND_PANE, 0 }, |
.target = { 't', CMD_FIND_PANE, 0 }, |
|
|
struct client *tc = cmdq_get_target_client(item); |
struct client *tc = cmdq_get_target_client(item); |
struct tty *tty = &tc->tty; |
struct tty *tty = &tc->tty; |
const char *value, *shell, *shellcmd = NULL; |
const char *value, *shell, *shellcmd = NULL; |
char *cwd, *cause = NULL, **argv = NULL; |
char *cwd, *cause = NULL, **argv = NULL, *title; |
int flags = 0, argc = 0; |
int flags = 0, argc = 0; |
enum box_lines lines = BOX_LINES_DEFAULT; |
enum box_lines lines = BOX_LINES_DEFAULT; |
u_int px, py, w, h, count = args_count(args); |
u_int px, py, w, h, count = args_count(args); |
|
|
} |
} |
} |
} |
|
|
|
if (args_has(args, 'T')) |
|
title = format_single_from_target(item, args_get(args, 'T')); |
|
else |
|
title = xstrdup(""); |
if (args_has(args, 'E') > 1) |
if (args_has(args, 'E') > 1) |
flags |= POPUP_CLOSEEXITZERO; |
flags |= POPUP_CLOSEEXITZERO; |
else if (args_has(args, 'E')) |
else if (args_has(args, 'E')) |
flags |= POPUP_CLOSEEXIT; |
flags |= POPUP_CLOSEEXIT; |
if (popup_display(flags, lines, item, px, py, w, h, env, shellcmd, argc, |
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); |
cmd_free_argv(argc, argv); |
if (env != NULL) |
if (env != NULL) |
environ_free(env); |
environ_free(env); |
|
free(title); |
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
} |
} |
if (env != NULL) |
if (env != NULL) |
environ_free(env); |
environ_free(env); |
|
free(title); |
cmd_free_argv(argc, argv); |
cmd_free_argv(argc, argv); |
return (CMD_RETURN_WAIT); |
return (CMD_RETURN_WAIT); |
} |
} |