aboutsummaryrefslogtreecommitdiff
path: root/status.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-08-19 10:39:50 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-08-19 10:39:50 +0000
commit3f4418d84dd8865f1bba410fc796acb53277abbf (patch)
tree8e77d873046cb99f6d4cbd9a8a1528a5d6f575c3 /status.c
parent036de0c5e44ba374707e86b313e4f848488ebdea (diff)
downloadrtmux-3f4418d84dd8865f1bba410fc796acb53277abbf.tar.gz
rtmux-3f4418d84dd8865f1bba410fc796acb53277abbf.tar.bz2
rtmux-3f4418d84dd8865f1bba410fc796acb53277abbf.zip
Extend command-prompt with a -p option which is a comma-separated list of one
or more prompts to present in order. The responses to the prompt are replaced in the template string: %% are replaced in order, so the first prompt replaces the first %%, the second replaces the second, and so on. In addition, %1 up to %9 are replaced with the responses to the first the ninth prompts The default template is "%1" so the response to the first prompt is processed as a command. Note that this changes the behaviour for %% so if there is only one prompt, only the first %% will be replaced. Templates such as "neww -n '%%' 'ssh %%'" should be changed to "neww -n '%1' 'ssh %1'". From Tiago Cunha.
Diffstat (limited to 'status.c')
-rw-r--r--status.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/status.c b/status.c
index d700f2c7..b4f23702 100644
--- a/status.c
+++ b/status.c
@@ -668,6 +668,20 @@ status_prompt_clear(struct client *c)
screen_reinit(&c->status);
}
+void
+status_prompt_update(struct client *c, const char *msg)
+{
+ xfree(c->prompt_string);
+ c->prompt_string = xstrdup(msg);
+
+ *c->prompt_buffer = '\0';
+ c->prompt_index = 0;
+
+ c->prompt_hindex = 0;
+
+ c->flags |= CLIENT_STATUS;
+}
+
/* Draw client prompt on status line of present else on last line. */
int
status_prompt_redraw(struct client *c)