Change message log to be per server rather than per client and include every

command that is run.
This commit is contained in:
Nicholas Marriott
2020-05-06 13:43:22 +01:00
parent c80fc6bf9e
commit 7a95e9bf7e
9 changed files with 92 additions and 76 deletions

18
tmux.h
View File

@ -1343,11 +1343,13 @@ struct tty_ctx {
/* Saved message entry. */
struct message_entry {
char *msg;
u_int msg_num;
time_t msg_time;
TAILQ_ENTRY(message_entry) entry;
char *msg;
u_int msg_num;
struct timeval msg_time;
TAILQ_ENTRY(message_entry) entry;
};
TAILQ_HEAD(message_list, message_entry);
/* Parsed arguments structures. */
struct args_entry;
@ -1605,8 +1607,6 @@ struct client {
char *message_string;
struct event message_timer;
u_int message_next;
TAILQ_HEAD(, message_entry) message_log;
char *prompt_string;
struct utf8_data *prompt_buffer;
@ -1848,6 +1848,8 @@ void format_free(struct format_tree *);
void format_merge(struct format_tree *, struct format_tree *);
void printflike(3, 4) format_add(struct format_tree *, const char *,
const char *, ...);
void format_add_tv(struct format_tree *, const char *,
struct timeval *);
void format_each(struct format_tree *, void (*)(const char *,
const char *, void *), void *);
char *format_expand_time(struct format_tree *, const char *);
@ -2271,6 +2273,7 @@ void file_push(struct client_file *);
extern struct tmuxproc *server_proc;
extern struct clients clients;
extern struct cmd_find_state marked_pane;
extern struct message_list message_log;
void server_set_marked(struct session *, struct winlink *,
struct window_pane *);
void server_clear_marked(void);
@ -2280,6 +2283,7 @@ int server_check_marked(void);
int server_start(struct tmuxproc *, int, struct event_base *, int, char *);
void server_update_socket(void);
void server_add_accept(int);
void printflike(1, 2) server_add_message(const char *, ...);
/* server-client.c */
u_int server_client_how_many(void);
@ -2301,8 +2305,6 @@ void server_client_exec(struct client *, const char *);
void server_client_loop(void);
void server_client_push_stdout(struct client *);
void server_client_push_stderr(struct client *);
void printflike(2, 3) server_client_add_message(struct client *, const char *,
...);
const char *server_client_get_cwd(struct client *, struct session *);
void server_client_set_flags(struct client *, const char *);
const char *server_client_get_flags(struct client *);