mirror of
https://github.com/tmux/tmux.git
synced 2024-11-16 09:28:51 +00:00
Window info command.
This commit is contained in:
parent
f4fd8c225e
commit
308bc18947
6
CHANGES
6
CHANGES
@ -1,3 +1,7 @@
|
|||||||
|
30 September 2007
|
||||||
|
|
||||||
|
* (nicm) Window info command for debugging, C-b I.
|
||||||
|
|
||||||
29 September 2007
|
29 September 2007
|
||||||
|
|
||||||
* (nicm) Deleting/inserting lines should follow scrolling region. Fix.
|
* (nicm) Deleting/inserting lines should follow scrolling region. Fix.
|
||||||
@ -76,5 +80,5 @@
|
|||||||
(including mutt, emacs). No status bar yet and no key remapping or other
|
(including mutt, emacs). No status bar yet and no key remapping or other
|
||||||
customisation.
|
customisation.
|
||||||
|
|
||||||
$Id: CHANGES,v 1.17 2007-09-29 21:10:26 nicm Exp $
|
$Id: CHANGES,v 1.18 2007-09-30 13:02:14 nicm Exp $
|
||||||
|
|
||||||
|
1
TODO
1
TODO
@ -21,7 +21,6 @@
|
|||||||
- figure out once and for all what is going on with backspace and del
|
- figure out once and for all what is going on with backspace and del
|
||||||
- deal properly with ambiguous ops... list-sessions & list-windows
|
- deal properly with ambiguous ops... list-sessions & list-windows
|
||||||
- keys to add:
|
- keys to add:
|
||||||
i : show window info (show name, title, size, tty, ...)
|
|
||||||
meta-meta : pass through meta (will need this...)
|
meta-meta : pass through meta (will need this...)
|
||||||
- commands to add:
|
- commands to add:
|
||||||
rename sessions
|
rename sessions
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: client-cmd.c,v 1.5 2007-09-28 21:41:52 mxey Exp $ */
|
/* $Id: client-cmd.c,v 1.6 2007-09-30 13:02:14 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -57,6 +57,8 @@ struct cmd client_cmd_table[] = {
|
|||||||
{ 'l', client_cmd_fn_msg, MSG_LAST },
|
{ 'l', client_cmd_fn_msg, MSG_LAST },
|
||||||
{ 'W', client_cmd_fn_msg, MSG_WINDOWLIST },
|
{ 'W', client_cmd_fn_msg, MSG_WINDOWLIST },
|
||||||
{ 'w', client_cmd_fn_msg, MSG_WINDOWLIST },
|
{ 'w', client_cmd_fn_msg, MSG_WINDOWLIST },
|
||||||
|
{ 'I', client_cmd_fn_msg, MSG_WINDOWINFO },
|
||||||
|
{ 'i', client_cmd_fn_msg, MSG_WINDOWINFO },
|
||||||
};
|
};
|
||||||
#define NCLIENTCMD (sizeof client_cmd_table / sizeof client_cmd_table[0])
|
#define NCLIENTCMD (sizeof client_cmd_table / sizeof client_cmd_table[0])
|
||||||
|
|
||||||
|
34
server-msg.c
34
server-msg.c
@ -1,4 +1,4 @@
|
|||||||
/* $Id: server-msg.c,v 1.11 2007-09-29 19:53:39 nicm Exp $ */
|
/* $Id: server-msg.c,v 1.12 2007-09-30 13:02:14 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -37,6 +37,7 @@ int server_msg_fn_select(struct hdr *, struct client *);
|
|||||||
int server_msg_fn_sessions(struct hdr *, struct client *);
|
int server_msg_fn_sessions(struct hdr *, struct client *);
|
||||||
int server_msg_fn_size(struct hdr *, struct client *);
|
int server_msg_fn_size(struct hdr *, struct client *);
|
||||||
int server_msg_fn_windowlist(struct hdr *, struct client *);
|
int server_msg_fn_windowlist(struct hdr *, struct client *);
|
||||||
|
int server_msg_fn_windowinfo(struct hdr *, struct client *);
|
||||||
int server_msg_fn_windows(struct hdr *, struct client *);
|
int server_msg_fn_windows(struct hdr *, struct client *);
|
||||||
|
|
||||||
struct server_msg {
|
struct server_msg {
|
||||||
@ -58,6 +59,7 @@ struct server_msg server_msg_table[] = {
|
|||||||
{ MSG_SESSIONS, server_msg_fn_sessions },
|
{ MSG_SESSIONS, server_msg_fn_sessions },
|
||||||
{ MSG_SIZE, server_msg_fn_size },
|
{ MSG_SIZE, server_msg_fn_size },
|
||||||
{ MSG_WINDOWLIST, server_msg_fn_windowlist },
|
{ MSG_WINDOWLIST, server_msg_fn_windowlist },
|
||||||
|
{ MSG_WINDOWINFO, server_msg_fn_windowinfo },
|
||||||
{ MSG_WINDOWS, server_msg_fn_windows },
|
{ MSG_WINDOWS, server_msg_fn_windows },
|
||||||
};
|
};
|
||||||
#define NSERVERMSG (sizeof server_msg_table / sizeof server_msg_table[0])
|
#define NSERVERMSG (sizeof server_msg_table / sizeof server_msg_table[0])
|
||||||
@ -472,3 +474,33 @@ server_msg_fn_windowlist(struct hdr *hdr, struct client *c)
|
|||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Window info message from client */
|
||||||
|
int
|
||||||
|
server_msg_fn_windowinfo(struct hdr *hdr, struct client *c)
|
||||||
|
{
|
||||||
|
struct window *w;
|
||||||
|
char *buf;
|
||||||
|
size_t len;
|
||||||
|
u_int i;
|
||||||
|
|
||||||
|
if (c->session == NULL)
|
||||||
|
return (0);
|
||||||
|
if (hdr->size != 0)
|
||||||
|
fatalx("bad MSG_WINDOWINFO size");
|
||||||
|
|
||||||
|
len = c->sx + 1;
|
||||||
|
buf = xmalloc(len);
|
||||||
|
|
||||||
|
w = c->session->window;
|
||||||
|
window_index(&c->session->windows, w, &i);
|
||||||
|
xsnprintf(buf, len, "%u:%s \"%s\" (size %u,%u) (cursor %u,%u) "
|
||||||
|
"(region %u,%u)", i, w->name, w->screen.title, w->screen.sx,
|
||||||
|
w->screen.sy, w->screen.cx, w->screen.cy, w->screen.ry_upper,
|
||||||
|
w->screen.ry_lower);
|
||||||
|
|
||||||
|
server_write_message(c, "%s", buf);
|
||||||
|
xfree(buf);
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
3
tmux.h
3
tmux.h
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tmux.h,v 1.27 2007-09-29 18:48:54 nicm Exp $ */
|
/* $Id: tmux.h,v 1.28 2007-09-30 13:02:14 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -276,6 +276,7 @@ enum hdrtype {
|
|||||||
MSG_SELECT,
|
MSG_SELECT,
|
||||||
MSG_SESSIONS,
|
MSG_SESSIONS,
|
||||||
MSG_SIZE,
|
MSG_SIZE,
|
||||||
|
MSG_WINDOWINFO,
|
||||||
MSG_WINDOWLIST,
|
MSG_WINDOWLIST,
|
||||||
MSG_WINDOWS,
|
MSG_WINDOWS,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user