summaryrefslogtreecommitdiffstats
path: root/tmux.h
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2011-08-26 10:53:16 +0000
committerNicholas Marriott <nicm@openbsd.org>2011-08-26 10:53:16 +0000
commit4a5dff3f114c9d548a762fb4c5b3003d0a6f406f (patch)
tree1c982474d2a308d1a06b4224630f9d7a57fbc88b /tmux.h
parent4697b35d4f84efb5ecd618d62cfa915535fd8020 (diff)
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.
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h23
1 files changed, 23 insertions, 0 deletions
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;