version 1.121, 2015/02/05 10:29:43 |
version 1.122, 2015/02/06 17:11:39 |
|
|
int (*callbackfn)(void *, const char *), void (*freefn)(void *), |
int (*callbackfn)(void *, const char *), void (*freefn)(void *), |
void *data, int flags) |
void *data, int flags) |
{ |
{ |
int keys; |
struct format_tree *ft; |
|
int keys; |
|
time_t t; |
|
|
|
ft = format_create(); |
|
format_defaults(ft, c, NULL, NULL, NULL); |
|
t = time(NULL); |
|
|
status_message_clear(c); |
status_message_clear(c); |
status_prompt_clear(c); |
status_prompt_clear(c); |
|
|
c->prompt_string = status_replace(c, NULL, msg, time(NULL), 0); |
c->prompt_string = format_expand_time(ft, msg, time(NULL)); |
|
|
c->prompt_buffer = status_replace(c, NULL, input, time(NULL), 0); |
c->prompt_buffer = format_expand_time(ft, input, time(NULL)); |
c->prompt_index = strlen(c->prompt_buffer); |
c->prompt_index = strlen(c->prompt_buffer); |
|
|
c->prompt_callbackfn = callbackfn; |
c->prompt_callbackfn = callbackfn; |
|
|
|
|
c->tty.flags |= (TTY_NOCURSOR|TTY_FREEZE); |
c->tty.flags |= (TTY_NOCURSOR|TTY_FREEZE); |
c->flags |= CLIENT_STATUS; |
c->flags |= CLIENT_STATUS; |
|
|
|
format_free(ft); |
} |
} |
|
|
/* Remove status line prompt. */ |
/* Remove status line prompt. */ |
|
|
void |
void |
status_prompt_update(struct client *c, const char *msg, const char *input) |
status_prompt_update(struct client *c, const char *msg, const char *input) |
{ |
{ |
|
struct format_tree *ft; |
|
time_t t; |
|
|
|
ft = format_create(); |
|
format_defaults(ft, c, NULL, NULL, NULL); |
|
t = time(NULL); |
|
|
free(c->prompt_string); |
free(c->prompt_string); |
c->prompt_string = status_replace(c, NULL, msg, time(NULL), 0); |
c->prompt_string = format_expand_time(ft, msg, time(NULL)); |
|
|
free(c->prompt_buffer); |
free(c->prompt_buffer); |
c->prompt_buffer = status_replace(c, NULL, input, time(NULL), 0); |
c->prompt_buffer = format_expand_time(ft, input, time(NULL)); |
c->prompt_index = strlen(c->prompt_buffer); |
c->prompt_index = strlen(c->prompt_buffer); |
|
|
c->prompt_hindex = 0; |
c->prompt_hindex = 0; |
|
|
c->flags |= CLIENT_STATUS; |
c->flags |= CLIENT_STATUS; |
|
|
|
format_free(ft); |
} |
} |
|
|
/* Draw client prompt on status line of present else on last line. */ |
/* Draw client prompt on status line of present else on last line. */ |