mirror of
https://github.com/tmux/tmux.git
synced 2025-09-07 01:56:58 +00:00
Merge branch 'obsd-master' into mtemp
This commit is contained in:
170
tmux.h
170
tmux.h
@ -19,7 +19,7 @@
|
||||
#ifndef TMUX_H
|
||||
#define TMUX_H
|
||||
|
||||
#define PROTOCOL_VERSION 7
|
||||
#define PROTOCOL_VERSION 8
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/time.h>
|
||||
@ -51,14 +51,6 @@ extern char **environ;
|
||||
/* Automatic name refresh interval, in milliseconds. */
|
||||
#define NAME_INTERVAL 500
|
||||
|
||||
/*
|
||||
* Maximum sizes of strings in message data. Don't forget to bump
|
||||
* PROTOCOL_VERSION if any of these change!
|
||||
*/
|
||||
#define COMMAND_LENGTH 2048 /* packed argv size */
|
||||
#define TERMINAL_LENGTH 128 /* length of TERM environment variable */
|
||||
#define ENVIRON_LENGTH 1024 /* environment variable length */
|
||||
|
||||
/*
|
||||
* UTF-8 data size. This must be big enough to hold combined characters as well
|
||||
* as single.
|
||||
@ -144,7 +136,7 @@ extern char **environ;
|
||||
"[layout #{window_layout}] #{window_id}" \
|
||||
"#{?window_active, (active),}";
|
||||
#define LIST_WINDOWS_WITH_SESSION_TEMPLATE \
|
||||
"#{session_name}: " \
|
||||
"#{session_name}:" \
|
||||
"#{window_index}: #{window_name}#{window_flags} " \
|
||||
"(#{window_panes} panes) " \
|
||||
"[#{window_width}x#{window_height}] "
|
||||
@ -430,27 +422,33 @@ ARRAY_DECL(causelist, char *);
|
||||
|
||||
/* Message codes. */
|
||||
enum msgtype {
|
||||
MSG_COMMAND,
|
||||
MSG_VERSION = 12,
|
||||
|
||||
MSG_IDENTIFY_FLAGS = 100,
|
||||
MSG_IDENTIFY_TERM,
|
||||
MSG_IDENTIFY_TTYNAME,
|
||||
MSG_IDENTIFY_CWD,
|
||||
MSG_IDENTIFY_STDIN,
|
||||
MSG_IDENTIFY_ENVIRON,
|
||||
MSG_IDENTIFY_DONE,
|
||||
|
||||
MSG_COMMAND = 200,
|
||||
MSG_DETACH,
|
||||
MSG_ERROR,
|
||||
MSG_DETACHKILL,
|
||||
MSG_EXIT,
|
||||
MSG_EXITED,
|
||||
MSG_EXITING,
|
||||
MSG_IDENTIFY,
|
||||
MSG_STDIN,
|
||||
MSG_LOCK,
|
||||
MSG_READY,
|
||||
MSG_RESIZE,
|
||||
MSG_SHUTDOWN,
|
||||
MSG_SUSPEND,
|
||||
MSG_VERSION,
|
||||
MSG_WAKEUP,
|
||||
MSG_ENVIRON,
|
||||
MSG_UNLOCK,
|
||||
MSG_LOCK,
|
||||
MSG_SHELL,
|
||||
MSG_SHUTDOWN,
|
||||
MSG_STDERR,
|
||||
MSG_STDIN,
|
||||
MSG_STDOUT,
|
||||
MSG_DETACHKILL
|
||||
MSG_SUSPEND,
|
||||
MSG_UNLOCK,
|
||||
MSG_WAKEUP,
|
||||
};
|
||||
|
||||
/*
|
||||
@ -459,45 +457,8 @@ enum msgtype {
|
||||
* Don't forget to bump PROTOCOL_VERSION if any of these change!
|
||||
*/
|
||||
struct msg_command_data {
|
||||
pid_t pid; /* from $TMUX or -1 */
|
||||
int session_id; /* from $TMUX or -1 */
|
||||
|
||||
int argc;
|
||||
char argv[COMMAND_LENGTH];
|
||||
};
|
||||
|
||||
struct msg_identify_data {
|
||||
char cwd[MAXPATHLEN];
|
||||
|
||||
char term[TERMINAL_LENGTH];
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
char ttyname[TTY_NAME_MAX];
|
||||
#endif
|
||||
|
||||
#define IDENTIFY_UTF8 0x1
|
||||
#define IDENTIFY_256COLOURS 0x2
|
||||
/* 0x4 unused */
|
||||
#define IDENTIFY_CONTROL 0x8
|
||||
#define IDENTIFY_TERMIOS 0x10
|
||||
int flags;
|
||||
};
|
||||
|
||||
struct msg_lock_data {
|
||||
char cmd[COMMAND_LENGTH];
|
||||
};
|
||||
|
||||
struct msg_environ_data {
|
||||
char var[ENVIRON_LENGTH];
|
||||
};
|
||||
|
||||
struct msg_shell_data {
|
||||
char shell[MAXPATHLEN];
|
||||
};
|
||||
|
||||
struct msg_exit_data {
|
||||
int retcode;
|
||||
};
|
||||
int argc;
|
||||
}; /* followed by packed argv */
|
||||
|
||||
struct msg_stdin_data {
|
||||
ssize_t size;
|
||||
@ -945,7 +906,7 @@ struct window_pane {
|
||||
|
||||
char *cmd;
|
||||
char *shell;
|
||||
char *cwd;
|
||||
int cwd;
|
||||
|
||||
pid_t pid;
|
||||
char tty[TTY_NAME_MAX];
|
||||
@ -1005,6 +966,7 @@ struct window {
|
||||
#define WINDOW_REDRAW 0x4
|
||||
#define WINDOW_SILENCE 0x8
|
||||
#define WINDOW_ZOOMED 0x10
|
||||
#define WINDOW_ALERTFLAGS (WINDOW_BELL|WINDOW_ACTIVITY|WINDOW_SILENCE)
|
||||
|
||||
struct options options;
|
||||
|
||||
@ -1091,7 +1053,7 @@ struct session {
|
||||
u_int id;
|
||||
|
||||
char *name;
|
||||
char *cwd;
|
||||
int cwd;
|
||||
|
||||
struct timeval creation_time;
|
||||
struct timeval activity_time;
|
||||
@ -1290,8 +1252,10 @@ RB_HEAD(status_out_tree, status_out);
|
||||
/* Client connection. */
|
||||
struct client {
|
||||
struct imsgbuf ibuf;
|
||||
|
||||
int fd;
|
||||
struct event event;
|
||||
int retcode;
|
||||
int retval;
|
||||
|
||||
struct timeval creation_time;
|
||||
struct timeval activity_time;
|
||||
@ -1299,8 +1263,10 @@ struct client {
|
||||
struct environ environ;
|
||||
|
||||
char *title;
|
||||
char *cwd;
|
||||
int cwd;
|
||||
|
||||
char *term;
|
||||
char *ttyname;
|
||||
struct tty tty;
|
||||
|
||||
void (*stdin_callback)(struct client *, int, void *);
|
||||
@ -1322,7 +1288,7 @@ struct client {
|
||||
#define CLIENT_EXIT 0x4
|
||||
#define CLIENT_REDRAW 0x8
|
||||
#define CLIENT_STATUS 0x10
|
||||
#define CLIENT_REPEAT 0x20 /* allow command to repeat within repeat time */
|
||||
#define CLIENT_REPEAT 0x20
|
||||
#define CLIENT_SUSPENDED 0x40
|
||||
#define CLIENT_BAD 0x80
|
||||
#define CLIENT_IDENTIFY 0x100
|
||||
@ -1331,7 +1297,11 @@ struct client {
|
||||
#define CLIENT_READONLY 0x800
|
||||
#define CLIENT_REDRAWWINDOW 0x1000
|
||||
#define CLIENT_CONTROL 0x2000
|
||||
#define CLIENT_FOCUSED 0x4000
|
||||
#define CLIENT_CONTROLCONTROL 0x4000
|
||||
#define CLIENT_FOCUSED 0x8000
|
||||
#define CLIENT_UTF8 0x10000
|
||||
#define CLIENT_256COLOURS 0x20000
|
||||
#define CLIENT_IDENTIFIED 0x40000
|
||||
int flags;
|
||||
|
||||
struct event identify_timer;
|
||||
@ -1428,8 +1398,6 @@ struct cmd_q {
|
||||
void (*emptyfn)(struct cmd_q *);
|
||||
void *data;
|
||||
|
||||
struct msg_command_data *msgdata;
|
||||
|
||||
TAILQ_ENTRY(cmd_q) waitentry;
|
||||
};
|
||||
|
||||
@ -1446,12 +1414,10 @@ struct cmd_entry {
|
||||
|
||||
#define CMD_STARTSERVER 0x1
|
||||
#define CMD_CANTNEST 0x2
|
||||
#define CMD_SENDENVIRON 0x4
|
||||
#define CMD_READONLY 0x8
|
||||
#define CMD_READONLY 0x4
|
||||
int flags;
|
||||
|
||||
void (*key_binding)(struct cmd *, int);
|
||||
int (*check)(struct args *);
|
||||
enum cmd_retval (*exec)(struct cmd *, struct cmd_q *);
|
||||
};
|
||||
|
||||
@ -1525,13 +1491,10 @@ extern time_t start_time;
|
||||
extern char socket_path[MAXPATHLEN];
|
||||
extern int login_shell;
|
||||
extern char *environ_path;
|
||||
extern pid_t environ_pid;
|
||||
extern int environ_session_id;
|
||||
void logfile(const char *);
|
||||
const char *getshell(void);
|
||||
int checkshell(const char *);
|
||||
int areshell(const char *);
|
||||
const char* get_full_path(const char *, const char *);
|
||||
void setblocking(int, int);
|
||||
__dead void shell_exec(const char *, const char *);
|
||||
|
||||
@ -1549,16 +1512,19 @@ 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 printflike3 format_add(
|
||||
struct format_tree *, const char *, const char *, ...);
|
||||
void printflike3 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_client(struct format_tree *, struct client *);
|
||||
void format_winlink(
|
||||
struct format_tree *, struct session *, struct winlink *);
|
||||
void format_window_pane(struct format_tree *, struct window_pane *);
|
||||
void format_paste_buffer(struct format_tree *, struct paste_buffer *);
|
||||
void format_window(struct format_tree *, struct window *);
|
||||
void format_winlink(struct format_tree *, struct session *,
|
||||
struct winlink *);
|
||||
void format_window_pane(struct format_tree *,
|
||||
struct window_pane *);
|
||||
void format_paste_buffer(struct format_tree *,
|
||||
struct paste_buffer *);
|
||||
|
||||
/* mode-key.c */
|
||||
extern const struct mode_key_table mode_key_tables[];
|
||||
@ -1764,7 +1730,6 @@ int cmd_find_index(struct cmd_q *, const char *,
|
||||
struct winlink *cmd_find_pane(struct cmd_q *, const char *, struct session **,
|
||||
struct window_pane **);
|
||||
char *cmd_template_replace(const char *, const char *, int);
|
||||
const char *cmd_get_default_path(struct cmd_q *, const char *);
|
||||
extern const struct cmd_entry *cmd_table[];
|
||||
extern const struct cmd_entry cmd_attach_session_entry;
|
||||
extern const struct cmd_entry cmd_bind_key_entry;
|
||||
@ -1855,7 +1820,8 @@ extern const struct cmd_entry cmd_up_pane_entry;
|
||||
extern const struct cmd_entry cmd_wait_for_entry;
|
||||
|
||||
/* cmd-attach-session.c */
|
||||
enum cmd_retval cmd_attach_session(struct cmd_q *, const char*, int, int);
|
||||
enum cmd_retval cmd_attach_session(struct cmd_q *, const char *, int, int,
|
||||
const char *);
|
||||
|
||||
/* cmd-list.c */
|
||||
struct cmd_list *cmd_list_parse(int, char **, const char *, u_int, char **);
|
||||
@ -1868,7 +1834,7 @@ int cmdq_free(struct cmd_q *);
|
||||
void printflike2 cmdq_print(struct cmd_q *, const char *, ...);
|
||||
void printflike2 cmdq_info(struct cmd_q *, const char *, ...);
|
||||
void printflike2 cmdq_error(struct cmd_q *, const char *, ...);
|
||||
int cmdq_guard(struct cmd_q *, const char *);
|
||||
int cmdq_guard(struct cmd_q *, const char *, int);
|
||||
void cmdq_run(struct cmd_q *, struct cmd_list *);
|
||||
void cmdq_append(struct cmd_q *, struct cmd_list *);
|
||||
int cmdq_continue(struct cmd_q *);
|
||||
@ -1919,10 +1885,10 @@ void server_window_loop(void);
|
||||
/* server-fn.c */
|
||||
void server_fill_environ(struct session *, struct environ *);
|
||||
void server_write_ready(struct client *);
|
||||
int server_write_client(
|
||||
struct client *, enum msgtype, const void *, size_t);
|
||||
void server_write_session(
|
||||
struct session *, enum msgtype, const void *, size_t);
|
||||
int server_write_client(struct client *, enum msgtype, const void *,
|
||||
size_t);
|
||||
void server_write_session(struct session *, enum msgtype, const void *,
|
||||
size_t);
|
||||
void server_redraw_client(struct client *);
|
||||
void server_status_client(struct client *);
|
||||
void server_redraw_session(struct session *);
|
||||
@ -2144,9 +2110,9 @@ void winlink_stack_remove(struct winlink_stack *, struct winlink *);
|
||||
int window_index(struct window *, u_int *);
|
||||
struct window *window_find_by_id(u_int);
|
||||
struct window *window_create1(u_int, u_int);
|
||||
struct window *window_create(const char *, const char *, const char *,
|
||||
const char *, struct environ *, struct termios *,
|
||||
u_int, u_int, u_int, char **);
|
||||
struct window *window_create(const char *, const char *, const char *, int,
|
||||
struct environ *, struct termios *, u_int, u_int, u_int,
|
||||
char **);
|
||||
void window_destroy(struct window *);
|
||||
struct window_pane *window_get_active_at(struct window *, u_int, u_int);
|
||||
void window_set_active_at(struct window *, u_int, u_int);
|
||||
@ -2170,8 +2136,8 @@ struct window_pane *window_pane_create(struct window *, u_int, u_int, u_int);
|
||||
void window_pane_destroy(struct window_pane *);
|
||||
void window_pane_timer_start(struct window_pane *);
|
||||
int window_pane_spawn(struct window_pane *, const char *,
|
||||
const char *, const char *, struct environ *,
|
||||
struct termios *, char **);
|
||||
const char *, int, struct environ *, struct termios *,
|
||||
char **);
|
||||
void window_pane_resize(struct window_pane *, u_int, u_int);
|
||||
void window_pane_alternate_on(struct window_pane *,
|
||||
struct grid_cell *, int);
|
||||
@ -2272,8 +2238,10 @@ void window_choose_collapse_all(struct window_pane *);
|
||||
void window_choose_set_current(struct window_pane *, u_int);
|
||||
|
||||
/* names.c */
|
||||
void queue_window_name(struct window *);
|
||||
char *default_window_name(struct window *);
|
||||
void queue_window_name(struct window *);
|
||||
char *default_window_name(struct window *);
|
||||
char *format_window_name(struct window *);
|
||||
char *parse_window_name(const char *);
|
||||
|
||||
/* signal.c */
|
||||
void set_signals(void(*)(int, short, void *));
|
||||
@ -2305,7 +2273,7 @@ RB_PROTOTYPE(sessions, session, entry, session_cmp);
|
||||
int session_alive(struct session *);
|
||||
struct session *session_find(const char *);
|
||||
struct session *session_find_by_id(u_int);
|
||||
struct session *session_create(const char *, const char *, const char *,
|
||||
struct session *session_create(const char *, const char *, int,
|
||||
struct environ *, struct termios *, int, u_int, u_int,
|
||||
char **);
|
||||
void session_destroy(struct session *);
|
||||
@ -2313,8 +2281,8 @@ int session_check_name(const char *);
|
||||
void session_update_activity(struct session *);
|
||||
struct session *session_next_session(struct session *);
|
||||
struct session *session_previous_session(struct session *);
|
||||
struct winlink *session_new(struct session *,
|
||||
const char *, const char *, const char *, int, char **);
|
||||
struct winlink *session_new(struct session *, const char *, const char *, int,
|
||||
int, char **);
|
||||
struct winlink *session_attach(
|
||||
struct session *, struct window *, int, char **);
|
||||
int session_detach(struct session *, struct winlink *);
|
||||
@ -2340,10 +2308,8 @@ int utf8_append(struct utf8_data *, u_char);
|
||||
u_int utf8_combine(const struct utf8_data *);
|
||||
u_int utf8_split2(u_int, u_char *);
|
||||
|
||||
/* osdep-*.c */
|
||||
char *osdep_get_name(int, char *);
|
||||
char *osdep_get_cwd(int);
|
||||
struct event_base *osdep_event_init(void);
|
||||
/* procname.c */
|
||||
char *get_proc_name(int, char *);
|
||||
|
||||
/* log.c */
|
||||
void log_open(int, const char *);
|
||||
|
Reference in New Issue
Block a user