mirror of
https://github.com/tmux/tmux.git
synced 2025-09-04 06:56:58 +00:00
Allow replacing each of the many sets of separate foo-{fg,bg,attr}
options with a single foo-style option. For example: set -g status-fg yellow set -g status-bg red set -g status-attr blink Becomes: set -g status-style fg=yellow,bg=red,blink The -a flag to set can be used to add to rather than replace a style. So: set -g status-bg red Becomes: set -ag status-style bg=red Currently this is fully backwards compatible (all *-{fg,bg,attr} options remain) but the plan is to deprecate them over time. From Tiago Cunha.
This commit is contained in:
36
tmux.h
36
tmux.h
@ -726,11 +726,12 @@ struct options_entry {
|
||||
enum {
|
||||
OPTIONS_STRING,
|
||||
OPTIONS_NUMBER,
|
||||
OPTIONS_DATA,
|
||||
OPTIONS_STYLE
|
||||
} type;
|
||||
|
||||
char *str;
|
||||
long long num;
|
||||
char *str;
|
||||
long long num;
|
||||
struct grid_cell style;
|
||||
|
||||
RB_ENTRY(options_entry) entry;
|
||||
};
|
||||
@ -1453,7 +1454,8 @@ enum options_table_type {
|
||||
OPTIONS_TABLE_COLOUR,
|
||||
OPTIONS_TABLE_ATTRIBUTES,
|
||||
OPTIONS_TABLE_FLAG,
|
||||
OPTIONS_TABLE_CHOICE
|
||||
OPTIONS_TABLE_CHOICE,
|
||||
OPTIONS_TABLE_STYLE
|
||||
};
|
||||
|
||||
struct options_table_entry {
|
||||
@ -1466,6 +1468,8 @@ struct options_table_entry {
|
||||
|
||||
const char *default_str;
|
||||
long long default_num;
|
||||
|
||||
const char *style;
|
||||
};
|
||||
|
||||
/* Tree of format entries. */
|
||||
@ -1577,12 +1581,15 @@ void options_free(struct options *);
|
||||
struct options_entry *options_find1(struct options *, const char *);
|
||||
struct options_entry *options_find(struct options *, const char *);
|
||||
void options_remove(struct options *, const char *);
|
||||
struct options_entry *printflike3 options_set_string(
|
||||
struct options *, const char *, const char *, ...);
|
||||
struct options_entry *printflike3 options_set_string(struct options *,
|
||||
const char *, const char *, ...);
|
||||
char *options_get_string(struct options *, const char *);
|
||||
struct options_entry *options_set_number(
|
||||
struct options *, const char *, long long);
|
||||
struct options_entry *options_set_number(struct options *, const char *,
|
||||
long long);
|
||||
long long options_get_number(struct options *, const char *);
|
||||
struct options_entry *options_set_style(struct options *, const char *,
|
||||
const char *, int);
|
||||
struct grid_cell *options_get_style(struct options *, const char *);
|
||||
|
||||
/* options-table.c */
|
||||
extern const struct options_table_entry server_options_table[];
|
||||
@ -2042,8 +2049,6 @@ void printflike5 screen_write_nputs(struct screen_write_ctx *,
|
||||
ssize_t, struct grid_cell *, int, const char *, ...);
|
||||
void screen_write_vnputs(struct screen_write_ctx *,
|
||||
ssize_t, struct grid_cell *, int, const char *, va_list);
|
||||
void screen_write_parsestyle(
|
||||
struct grid_cell *, struct grid_cell *, const char *);
|
||||
void screen_write_putc(
|
||||
struct screen_write_ctx *, struct grid_cell *, u_char);
|
||||
void screen_write_copy(struct screen_write_ctx *,
|
||||
@ -2173,7 +2178,6 @@ struct window_pane *window_pane_find_right(struct window_pane *);
|
||||
void window_set_name(struct window *, const char *);
|
||||
void window_remove_ref(struct window *);
|
||||
void winlink_clear_flags(struct winlink *);
|
||||
void window_mode_attrs(struct grid_cell *, struct options *);
|
||||
|
||||
/* layout.c */
|
||||
u_int layout_count_cells(struct layout_cell *);
|
||||
@ -2345,4 +2349,14 @@ int xvasprintf(char **, const char *, va_list);
|
||||
int printflike3 xsnprintf(char *, size_t, const char *, ...);
|
||||
int xvsnprintf(char *, size_t, const char *, va_list);
|
||||
|
||||
/* style.c */
|
||||
int style_parse(const struct grid_cell *,
|
||||
struct grid_cell *, const char *);
|
||||
const char *style_tostring(struct grid_cell *);
|
||||
void style_update_new(struct options *, const char *, const char *);
|
||||
void style_update_old(struct options *, const char *,
|
||||
struct grid_cell *);
|
||||
void style_apply(struct grid_cell *, struct options *, const char *);
|
||||
void style_apply_update(struct grid_cell *, struct options *, const char *);
|
||||
|
||||
#endif /* TMUX_H */
|
||||
|
Reference in New Issue
Block a user