mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
- New command display-message (alias display) to display a message in the
status line (bound to "i" and displays the current window and time by default). The same substitutions are applied as for status-left/right. - Add support for including the window index (#I), pane index (#P) and window name (#W) in the message, and status-left or status-right. - Bump protocol version. From Tiago Cunha, thanks!
This commit is contained in:
21
status.c
21
status.c
@ -29,7 +29,6 @@
|
||||
|
||||
#include "tmux.h"
|
||||
|
||||
char *status_replace(struct session *, char *, time_t);
|
||||
char *status_replace_popen(char **);
|
||||
size_t status_width(struct winlink *);
|
||||
char *status_print(struct session *, struct winlink *, struct grid_cell *);
|
||||
@ -275,7 +274,7 @@ out:
|
||||
}
|
||||
|
||||
char *
|
||||
status_replace(struct session *s, char *fmt, time_t t)
|
||||
status_replace(struct session *s, const char *fmt, time_t t)
|
||||
{
|
||||
struct winlink *wl = s->curw;
|
||||
static char out[BUFSIZ];
|
||||
@ -323,6 +322,20 @@ status_replace(struct session *s, char *fmt, time_t t)
|
||||
ptr = tmp;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
case 'I':
|
||||
if (ptr == NULL) {
|
||||
xsnprintf(tmp, sizeof tmp, "%d", wl->idx);
|
||||
ptr = tmp;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
case 'P':
|
||||
if (ptr == NULL) {
|
||||
xsnprintf(tmp, sizeof tmp, "%u",
|
||||
window_pane_index(wl->window,
|
||||
wl->window->active));
|
||||
ptr = tmp;
|
||||
}
|
||||
/* FALLTHOUGH */
|
||||
case 'S':
|
||||
if (ptr == NULL)
|
||||
ptr = s->name;
|
||||
@ -330,6 +343,10 @@ status_replace(struct session *s, char *fmt, time_t t)
|
||||
case 'T':
|
||||
if (ptr == NULL)
|
||||
ptr = wl->window->active->base.title;
|
||||
/* FALLTHROUGH */
|
||||
case 'W':
|
||||
if (ptr == NULL)
|
||||
ptr = wl->window->name;
|
||||
len = strlen(ptr);
|
||||
if ((size_t) n < len)
|
||||
len = n;
|
||||
|
Reference in New Issue
Block a user