summaryrefslogtreecommitdiffstats
path: root/cmd-command-prompt.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2011-07-08 06:37:57 +0000
committerNicholas Marriott <nicm@openbsd.org>2011-07-08 06:37:57 +0000
commit2de9b1e005be97c6f1acdd6e24803e01badff52c (patch)
tree50089173bc2ec9010ee0027672c7290c0d26890f /cmd-command-prompt.c
parentb4b3d9c936b9e22eb835dd1d8b65e689fc66fb6c (diff)
Make confirm-before prompt customizable with -p option like
command-prompt. Also move responsibility for calling status_replace into status_prompt_{set,update} and add #W and #P to the default kill-window and kill-pane prompts. By Tiago Cunha.
Diffstat (limited to 'cmd-command-prompt.c')
-rw-r--r--cmd-command-prompt.c39
1 files changed, 8 insertions, 31 deletions
diff --git a/cmd-command-prompt.c b/cmd-command-prompt.c
index f0f1d12d..cd4d07ed 100644
--- a/cmd-command-prompt.c
+++ b/cmd-command-prompt.c
@@ -90,8 +90,7 @@ cmd_command_prompt_exec(struct cmd *self, struct cmd_ctx *ctx)
const char *inputs, *prompts;
struct cmd_command_prompt_cdata *cdata;
struct client *c;
- char *input = NULL;
- char *prompt, *prompt_replaced, *ptr;
+ char *prompt, *ptr, *input = NULL;
size_t n;
if ((c = cmd_find_client(ctx, args_get(args, 't'))) == NULL)
@@ -127,28 +126,18 @@ cmd_command_prompt_exec(struct cmd *self, struct cmd_ctx *ctx)
ptr = strsep(&cdata->next_prompt, ",");
if (prompts == NULL)
prompt = xstrdup(ptr);
- else {
- prompt_replaced = status_replace(c, NULL, NULL, NULL, ptr,
- time(NULL), 0);
- xasprintf(&prompt, "%s ", prompt_replaced);
- xfree(prompt_replaced);
- }
+ else
+ xasprintf(&prompt, "%s ", ptr);
/* Get initial prompt input. */
if ((inputs = args_get(args, 'I')) != NULL) {
cdata->inputs = xstrdup(inputs);
cdata->next_input = cdata->inputs;
- ptr = strsep(&cdata->next_input, ",");
-
- input = status_replace(c, NULL, NULL, NULL, ptr, time(NULL),
- 0);
+ input = strsep(&cdata->next_input, ",");
}
status_prompt_set(c, prompt, input, cmd_command_prompt_callback,
cmd_command_prompt_free, cdata, 0);
-
- if (input != NULL)
- xfree(input);
xfree(prompt);
return (0);
@@ -161,8 +150,8 @@ cmd_command_prompt_callback(void *data, const char *s)
struct client *c = cdata->c;
struct cmd_list *cmdlist;
struct cmd_ctx ctx;
- char *cause, *new_template, *prompt;
- char *prompt_replaced, *ptr, *input = NULL;
+ char *cause, *new_template, *prompt, *ptr;
+ char *input = NULL;
if (s == NULL)
return (0);
@@ -176,23 +165,11 @@ cmd_command_prompt_callback(void *data, const char *s)
* and update the prompt data.
*/
if ((ptr = strsep(&cdata->next_prompt, ",")) != NULL) {
- prompt_replaced = status_replace(c, NULL, NULL, NULL, ptr,
- time(NULL), 0);
- xasprintf(&prompt, "%s ", prompt_replaced);
-
- /* Find next input and expand special sequences. */
- if ((ptr = strsep(&cdata->next_input, ",")) != NULL) {
- input = status_replace(c, NULL, NULL, NULL, ptr,
- time(NULL), 0);
- }
-
+ xasprintf(&prompt, "%s ", ptr);
+ input = strsep(&cdata->next_input, ",");
status_prompt_update(c, prompt, input);
- if (input != NULL)
- xfree(input);
- xfree(prompt_replaced);
xfree(prompt);
-
cdata->idx++;
return (1);
}