From 4a5dff3f114c9d548a762fb4c5b3003d0a6f406f Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Fri, 26 Aug 2011 10:53:16 +0000 Subject: Add initial framework for more powerful formatting of command output and use it for list-{panes,windows,sessions}. This allows more descriptive replacements (such as #{session_name}) and conditionals. Later this will be used for status_replace and list-keys and other places. --- tmux.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tmux.h') diff --git a/tmux.h b/tmux.h index 7f0390d5..995e4989 100644 --- a/tmux.h +++ b/tmux.h @@ -1303,6 +1303,15 @@ struct options_table_entry { long long default_num; }; +/* Tree of format entries. */ +struct format_entry { + char *key; + char *value; + + RB_ENTRY(format_entry) entry; +}; +RB_HEAD(format_tree, format_entry); + /* List of configuration causes. */ ARRAY_DECL(causelist, char *); @@ -1345,6 +1354,20 @@ extern struct causelist cfg_causes; void printflike2 cfg_add_cause(struct causelist *, const char *, ...); int load_cfg(const char *, struct cmd_ctx *, struct causelist *); +/* format.c */ +int format_cmp(struct format_entry *, struct format_entry *); +RB_PROTOTYPE(format_tree, format_entry, entry, format_cmp); +struct format_tree *format_create(void); +void format_free(struct format_tree *); +void format_add( + struct format_tree *, const char *, const char *, ...); +const char *format_find(struct format_tree *, const char *); +char *format_expand(struct format_tree *, const char *); +void format_session(struct format_tree *, struct session *); +void format_winlink( + struct format_tree *, struct session *, struct winlink *); +void format_window_pane(struct format_tree *, struct window_pane *); + /* mode-key.c */ extern const struct mode_key_table mode_key_tables[]; extern struct mode_key_tree mode_key_tree_vi_edit; -- cgit v1.2.3