mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 13:37:12 +00:00
Memory could be leaked if a second prompt or message appeared while another was
still present, so add a separate prompt free callback and make the _clear function responsible for calling it if necessary (rather than the individual prompt callbacks). Also make both messages and prompts clear any existing when a new is set. In addition, the screen could be modified while the prompt is there, restore the redraw-entire-screen behaviour on prompt clear; add a comment as a reminder.
This commit is contained in:
7
tmux.h
7
tmux.h
@ -802,7 +802,8 @@ struct client {
|
||||
char *prompt_string;
|
||||
char *prompt_buffer;
|
||||
size_t prompt_index;
|
||||
int (*prompt_callback)(void *, const char *);
|
||||
int (*prompt_callbackfn)(void *, const char *);
|
||||
void (*prompt_freefn)(void *);
|
||||
void *prompt_data;
|
||||
|
||||
#define PROMPT_HIDDEN 0x1
|
||||
@ -1278,8 +1279,8 @@ int status_redraw(struct client *);
|
||||
void printflike2 status_message_set(struct client *, const char *, ...);
|
||||
void status_message_clear(struct client *);
|
||||
int status_message_redraw(struct client *);
|
||||
void status_prompt_set(struct client *,
|
||||
const char *, int (*)(void *, const char *), void *, int);
|
||||
void status_prompt_set(struct client *, const char *,
|
||||
int (*)(void *, const char *), void (*)(void *), void *, int);
|
||||
void status_prompt_clear(struct client *);
|
||||
int status_prompt_redraw(struct client *);
|
||||
void status_prompt_key(struct client *, int);
|
||||
|
Reference in New Issue
Block a user