version 1.31, 2013/10/10 11:50:36 |
version 1.32, 2013/10/10 11:56:50 |
|
|
* string. |
* string. |
*/ |
*/ |
|
|
int format_replace(struct format_tree *, const char *, size_t, char **, |
int format_replace(struct format_tree *, const char *, size_t, char **, |
size_t *, size_t *); |
size_t *, size_t *); |
void format_window_pane_tabs(struct format_tree *, struct window_pane *); |
char *format_get_command(struct window_pane *); |
|
void format_window_pane_tabs(struct format_tree *, struct window_pane *); |
|
|
/* Format key-value replacement entry. */ |
/* Format key-value replacement entry. */ |
RB_GENERATE(format_tree, format_entry, entry, format_cmp); |
RB_GENERATE(format_tree, format_entry, entry, format_cmp); |
|
|
return (buf); |
return (buf); |
} |
} |
|
|
|
/* Get command name for format. */ |
|
char * |
|
format_get_command(struct window_pane *wp) |
|
{ |
|
char *cmd; |
|
|
|
cmd = get_proc_name(wp->fd, wp->tty); |
|
if (cmd == NULL || *cmd == '\0') { |
|
cmd = wp->cmd; |
|
if (cmd == NULL || *cmd == '\0') |
|
cmd = wp->shell; |
|
} |
|
return (parse_window_name(cmd)); |
|
} |
|
|
/* Set default format keys for a session. */ |
/* Set default format keys for a session. */ |
void |
void |
format_session(struct format_tree *ft, struct session *s) |
format_session(struct format_tree *ft, struct session *s) |
|
|
format_add(ft, "client_last_session", "%s", s->name); |
format_add(ft, "client_last_session", "%s", s->name); |
} |
} |
|
|
/* Set default format keys for a winlink. */ |
/* Set default format keys for a window. */ |
void |
void |
format_winlink(struct format_tree *ft, struct session *s, struct winlink *wl) |
format_window(struct format_tree *ft, struct window *w) |
{ |
{ |
struct window *w = wl->window; |
char *layout; |
char *layout, *flags; |
|
|
|
layout = layout_dump(w); |
layout = layout_dump(w); |
flags = window_printable_flags(s, wl); |
|
|
|
format_add(ft, "window_id", "@%u", w->id); |
format_add(ft, "window_id", "@%u", w->id); |
format_add(ft, "window_index", "%d", wl->idx); |
|
format_add(ft, "window_name", "%s", w->name); |
format_add(ft, "window_name", "%s", w->name); |
format_add(ft, "window_width", "%u", w->sx); |
format_add(ft, "window_width", "%u", w->sx); |
format_add(ft, "window_height", "%u", w->sy); |
format_add(ft, "window_height", "%u", w->sy); |
format_add(ft, "window_flags", "%s", flags); |
|
format_add(ft, "window_layout", "%s", layout); |
format_add(ft, "window_layout", "%s", layout); |
format_add(ft, "window_active", "%d", wl == s->curw); |
|
format_add(ft, "window_panes", "%u", window_count_panes(w)); |
format_add(ft, "window_panes", "%u", window_count_panes(w)); |
|
|
|
free(layout); |
|
} |
|
|
|
/* Set default format keys for a winlink. */ |
|
void |
|
format_winlink(struct format_tree *ft, struct session *s, struct winlink *wl) |
|
{ |
|
struct window *w = wl->window; |
|
char *flags; |
|
|
|
flags = window_printable_flags(s, wl); |
|
|
|
format_window(ft, w); |
|
|
|
format_add(ft, "window_index", "%d", wl->idx); |
|
format_add(ft, "window_flags", "%s", flags); |
|
format_add(ft, "window_active", "%d", wl == s->curw); |
|
|
format_add(ft, "window_bell_flag", "%u", |
format_add(ft, "window_bell_flag", "%u", |
!!(wl->flags & WINLINK_BELL)); |
!!(wl->flags & WINLINK_BELL)); |
format_add(ft, "window_content_flag", "%u", |
format_add(ft, "window_content_flag", "%u", |
|
|
format_add(ft, "window_silence_flag", "%u", |
format_add(ft, "window_silence_flag", "%u", |
!!(wl->flags & WINLINK_SILENCE)); |
!!(wl->flags & WINLINK_SILENCE)); |
|
|
|
|
free(flags); |
free(flags); |
free(layout); |
|
} |
} |
|
|
/* Add window pane tabs. */ |
/* Add window pane tabs. */ |