mirror of
https://github.com/tmate-io/tmate-ssh-server.git
synced 2020-11-18 19:53:51 -08:00
Merge remote-tracking branch 'tmux/master' into dev
This commit is contained in:
commit
0cf681e609
8
README
8
README
@ -33,8 +33,12 @@ the source tree with:
|
|||||||
Some common questions are answered in the FAQ file and a more extensive (but
|
Some common questions are answered in the FAQ file and a more extensive (but
|
||||||
slightly out of date) guide is available in the OpenBSD FAQ at
|
slightly out of date) guide is available in the OpenBSD FAQ at
|
||||||
http://www.openbsd.org/faq/faq7.html#tmux. A rough todo list is in the TODO
|
http://www.openbsd.org/faq/faq7.html#tmux. A rough todo list is in the TODO
|
||||||
file and some example configurations and a Vim syntax file are in the examples
|
file and some example configurations are in the examples directory.
|
||||||
directory.
|
|
||||||
|
A vim(1) syntax file is available at:
|
||||||
|
|
||||||
|
https://github.com/keith/tmux.vim
|
||||||
|
https://raw.githubusercontent.com/keith/tmux.vim/master/syntax/tmux.vim
|
||||||
|
|
||||||
For debugging, running tmux with -v or -vv will generate server and client log
|
For debugging, running tmux with -v or -vv will generate server and client log
|
||||||
files in the current directory.
|
files in the current directory.
|
||||||
|
@ -85,12 +85,6 @@ cmd_select_pane_exec(struct cmd *self, struct cmd_q *cmdq)
|
|||||||
return (CMD_RETURN_NORMAL);
|
return (CMD_RETURN_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
server_unzoom_window(wp->window);
|
|
||||||
if (!window_pane_visible(wp)) {
|
|
||||||
cmdq_error(cmdq, "pane not visible");
|
|
||||||
return (CMD_RETURN_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args_has(args, 'm') || args_has(args, 'M')) {
|
if (args_has(args, 'm') || args_has(args, 'M')) {
|
||||||
if (args_has(args, 'm') && !window_pane_visible(wp))
|
if (args_has(args, 'm') && !window_pane_visible(wp))
|
||||||
return (CMD_RETURN_NORMAL);
|
return (CMD_RETURN_NORMAL);
|
||||||
|
@ -94,10 +94,9 @@ cmd_switch_client_exec(struct cmd *self, struct cmd_q *cmdq)
|
|||||||
cmdq_error(cmdq, "can't find last session");
|
cmdq_error(cmdq, "can't find last session");
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
if (cmdq->client == NULL)
|
if (cmdq->client == NULL)
|
||||||
return (CMD_RETURN_NORMAL);
|
return (CMD_RETURN_NORMAL);
|
||||||
|
|
||||||
s = state->tflag.s;
|
|
||||||
if (state->tflag.wl != NULL) {
|
if (state->tflag.wl != NULL) {
|
||||||
wp = state->tflag.wp;
|
wp = state->tflag.wp;
|
||||||
if (wp != NULL)
|
if (wp != NULL)
|
||||||
|
@ -1,314 +0,0 @@
|
|||||||
" Vim syntax file
|
|
||||||
" Language: tmux(1) configuration file
|
|
||||||
" Maintainer: Tiago Cunha <tcunha@users.sourceforge.net>
|
|
||||||
" Last Change: $Date: 2010-07-27 18:29:07 $
|
|
||||||
" License: This file is placed in the public domain.
|
|
||||||
"
|
|
||||||
" To install this file:
|
|
||||||
"
|
|
||||||
" - Drop the file in the syntax directory into runtimepath (such as
|
|
||||||
" ~/.vim/syntax/tmux.vim).
|
|
||||||
" - Make the filetype recognisable by adding the following to filetype.vim
|
|
||||||
" (~/.vim/filetype.vim):
|
|
||||||
"
|
|
||||||
" augroup filetypedetect
|
|
||||||
" au BufNewFile,BufRead .tmux.conf*,tmux.conf* setf tmux
|
|
||||||
" augroup END
|
|
||||||
"
|
|
||||||
" - Switch on syntax highlighting by adding "syntax enable" to .vimrc.
|
|
||||||
"
|
|
||||||
|
|
||||||
if version < 600
|
|
||||||
syntax clear
|
|
||||||
elseif exists("b:current_syntax")
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
setlocal iskeyword+=-
|
|
||||||
syntax case match
|
|
||||||
|
|
||||||
syn keyword tmuxAction any current none
|
|
||||||
syn keyword tmuxBoolean off on
|
|
||||||
|
|
||||||
syn keyword tmuxCmds
|
|
||||||
\ attach
|
|
||||||
\ attach-session
|
|
||||||
\ bind
|
|
||||||
\ bind-key
|
|
||||||
\ break-pane
|
|
||||||
\ breakp
|
|
||||||
\ capture-pane
|
|
||||||
\ capturep
|
|
||||||
\ choose-buffer
|
|
||||||
\ choose-client
|
|
||||||
\ choose-session
|
|
||||||
\ choose-tree
|
|
||||||
\ choose-window
|
|
||||||
\ clear-history
|
|
||||||
\ clearhist
|
|
||||||
\ clock-mode
|
|
||||||
\ command-prompt
|
|
||||||
\ confirm
|
|
||||||
\ confirm-before
|
|
||||||
\ copy-mode
|
|
||||||
\ delete-buffer
|
|
||||||
\ deleteb
|
|
||||||
\ detach
|
|
||||||
\ detach-client
|
|
||||||
\ display
|
|
||||||
\ display-message
|
|
||||||
\ display-panes
|
|
||||||
\ displayp
|
|
||||||
\ find-window
|
|
||||||
\ findw
|
|
||||||
\ has
|
|
||||||
\ has-session
|
|
||||||
\ if
|
|
||||||
\ if-shell
|
|
||||||
\ info
|
|
||||||
\ join-pane
|
|
||||||
\ joinp
|
|
||||||
\ kill-pane
|
|
||||||
\ kill-server
|
|
||||||
\ kill-session
|
|
||||||
\ kill-window
|
|
||||||
\ killp
|
|
||||||
\ killw
|
|
||||||
\ last
|
|
||||||
\ last-pane
|
|
||||||
\ last-window
|
|
||||||
\ lastp
|
|
||||||
\ link-window
|
|
||||||
\ linkw
|
|
||||||
\ list-buffers
|
|
||||||
\ list-clients
|
|
||||||
\ list-commands
|
|
||||||
\ list-keys
|
|
||||||
\ list-panes
|
|
||||||
\ list-sessions
|
|
||||||
\ list-windows
|
|
||||||
\ load-buffer
|
|
||||||
\ loadb
|
|
||||||
\ lock
|
|
||||||
\ lock-client
|
|
||||||
\ lock-server
|
|
||||||
\ lock-session
|
|
||||||
\ lockc
|
|
||||||
\ locks
|
|
||||||
\ ls
|
|
||||||
\ lsb
|
|
||||||
\ lsc
|
|
||||||
\ lscm
|
|
||||||
\ lsk
|
|
||||||
\ lsp
|
|
||||||
\ lsw
|
|
||||||
\ move-pane
|
|
||||||
\ move-window
|
|
||||||
\ movep
|
|
||||||
\ movew
|
|
||||||
\ new
|
|
||||||
\ new-session
|
|
||||||
\ new-window
|
|
||||||
\ neww
|
|
||||||
\ next
|
|
||||||
\ next-layout
|
|
||||||
\ next-window
|
|
||||||
\ nextl
|
|
||||||
\ paste-buffer
|
|
||||||
\ pasteb
|
|
||||||
\ path
|
|
||||||
\ pipe-pane
|
|
||||||
\ pipep
|
|
||||||
\ prev
|
|
||||||
\ previous-layout
|
|
||||||
\ previous-window
|
|
||||||
\ prevl
|
|
||||||
\ refresh
|
|
||||||
\ refresh-client
|
|
||||||
\ rename
|
|
||||||
\ rename-session
|
|
||||||
\ rename-window
|
|
||||||
\ renamew
|
|
||||||
\ resize-pane
|
|
||||||
\ resizep
|
|
||||||
\ respawn-pane
|
|
||||||
\ respawn-window
|
|
||||||
\ respawnp
|
|
||||||
\ respawnw
|
|
||||||
\ rotate-window
|
|
||||||
\ rotatew
|
|
||||||
\ run
|
|
||||||
\ run-shell
|
|
||||||
\ save-buffer
|
|
||||||
\ saveb
|
|
||||||
\ select-layout
|
|
||||||
\ select-pane
|
|
||||||
\ select-window
|
|
||||||
\ selectl
|
|
||||||
\ selectp
|
|
||||||
\ selectw
|
|
||||||
\ send
|
|
||||||
\ send-keys
|
|
||||||
\ send-prefix
|
|
||||||
\ server-info
|
|
||||||
\ set
|
|
||||||
\ set-buffer
|
|
||||||
\ set-environment
|
|
||||||
\ set-option
|
|
||||||
\ set-window-option
|
|
||||||
\ setb
|
|
||||||
\ setenv
|
|
||||||
\ setw
|
|
||||||
\ show
|
|
||||||
\ show-buffer
|
|
||||||
\ show-environment
|
|
||||||
\ show-messages
|
|
||||||
\ show-options
|
|
||||||
\ show-window-options
|
|
||||||
\ showb
|
|
||||||
\ showenv
|
|
||||||
\ showmsgs
|
|
||||||
\ showw
|
|
||||||
\ source
|
|
||||||
\ source-file
|
|
||||||
\ split-window
|
|
||||||
\ splitw
|
|
||||||
\ start
|
|
||||||
\ start-server
|
|
||||||
\ suspend-client
|
|
||||||
\ suspendc
|
|
||||||
\ swap-pane
|
|
||||||
\ swap-window
|
|
||||||
\ swapp
|
|
||||||
\ swapw
|
|
||||||
\ switch-client
|
|
||||||
\ switchc
|
|
||||||
\ unbind
|
|
||||||
\ unbind-key
|
|
||||||
\ unlink-window
|
|
||||||
\ unlinkw
|
|
||||||
\ wait
|
|
||||||
\ wait-for
|
|
||||||
|
|
||||||
syn keyword tmuxOptsSet
|
|
||||||
\ assume-paste-time
|
|
||||||
\ base-index
|
|
||||||
\ bell-action
|
|
||||||
\ bell-on-alert
|
|
||||||
\ buffer-limit
|
|
||||||
\ default-command
|
|
||||||
\ default-shell
|
|
||||||
\ default-terminal
|
|
||||||
\ destroy-unattached
|
|
||||||
\ detach-on-destroy
|
|
||||||
\ display-panes-active-colour
|
|
||||||
\ display-panes-colour
|
|
||||||
\ display-panes-time
|
|
||||||
\ display-time
|
|
||||||
\ escape-time
|
|
||||||
\ exit-unattached
|
|
||||||
\ focus-events
|
|
||||||
\ history-file
|
|
||||||
\ history-limit
|
|
||||||
\ lock-after-time
|
|
||||||
\ lock-command
|
|
||||||
\ message-command-style
|
|
||||||
\ message-limit
|
|
||||||
\ message-style
|
|
||||||
\ mouse
|
|
||||||
\ mouse-utf8
|
|
||||||
\ prefix
|
|
||||||
\ prefix2
|
|
||||||
\ quiet
|
|
||||||
\ renumber-windows
|
|
||||||
\ repeat-time
|
|
||||||
\ set-clipboard
|
|
||||||
\ set-remain-on-exit
|
|
||||||
\ set-titles
|
|
||||||
\ set-titles-string
|
|
||||||
\ status
|
|
||||||
\ status-interval
|
|
||||||
\ status-justify
|
|
||||||
\ status-keys
|
|
||||||
\ status-left
|
|
||||||
\ status-left-length
|
|
||||||
\ status-left-style
|
|
||||||
\ status-position
|
|
||||||
\ status-right
|
|
||||||
\ status-right-length
|
|
||||||
\ status-right-style
|
|
||||||
\ status-style
|
|
||||||
\ status-utf8
|
|
||||||
\ terminal-overrides
|
|
||||||
\ update-environment
|
|
||||||
\ visual-activity
|
|
||||||
\ visual-bell
|
|
||||||
\ visual-silence
|
|
||||||
\ word-separators
|
|
||||||
|
|
||||||
syn keyword tmuxOptsSetw
|
|
||||||
\ aggressive-resize
|
|
||||||
\ allow-rename
|
|
||||||
\ alternate-screen
|
|
||||||
\ automatic-rename
|
|
||||||
\ automatic-rename-format
|
|
||||||
\ clock-mode-colour
|
|
||||||
\ clock-mode-style
|
|
||||||
\ force-height
|
|
||||||
\ force-width
|
|
||||||
\ main-pane-height
|
|
||||||
\ main-pane-width
|
|
||||||
\ mode-keys
|
|
||||||
\ mode-style
|
|
||||||
\ monitor-activity
|
|
||||||
\ monitor-silence
|
|
||||||
\ other-pane-height
|
|
||||||
\ other-pane-width
|
|
||||||
\ pane-active-border-style
|
|
||||||
\ pane-base-index
|
|
||||||
\ pane-border-style
|
|
||||||
\ remain-on-exit
|
|
||||||
\ synchronize-panes
|
|
||||||
\ utf8
|
|
||||||
\ window-active-style
|
|
||||||
\ window-status-activity-style
|
|
||||||
\ window-status-bell-style
|
|
||||||
\ window-status-current-format
|
|
||||||
\ window-status-current-style
|
|
||||||
\ window-status-format
|
|
||||||
\ window-status-last-style
|
|
||||||
\ window-status-separator
|
|
||||||
\ window-status-style
|
|
||||||
\ window-style
|
|
||||||
\ wrap-search
|
|
||||||
\ xterm-keys
|
|
||||||
|
|
||||||
syn keyword tmuxTodo FIXME NOTE TODO XXX contained
|
|
||||||
|
|
||||||
syn match tmuxKey /\(C-\|M-\|\^\)\+\S\+/ display
|
|
||||||
syn match tmuxNumber /\d\+/ display
|
|
||||||
syn match tmuxOptions /\s-\a\+/ display
|
|
||||||
syn match tmuxVariable /\w\+=/ display
|
|
||||||
syn match tmuxVariableExpansion /\${\=\w\+}\=/ display
|
|
||||||
|
|
||||||
" Comments can span multiple lines, when the newline is escaped
|
|
||||||
" (with a single) backslash at the end.
|
|
||||||
syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo
|
|
||||||
syn region tmuxString start=/"/ end=/"/ display oneline
|
|
||||||
syn region tmuxString start=/'/ end=/'/ display oneline
|
|
||||||
|
|
||||||
hi def link tmuxAction Boolean
|
|
||||||
hi def link tmuxBoolean Boolean
|
|
||||||
hi def link tmuxCmds Keyword
|
|
||||||
hi def link tmuxComment Comment
|
|
||||||
hi def link tmuxKey Special
|
|
||||||
hi def link tmuxNumber Number
|
|
||||||
hi def link tmuxOptions Identifier
|
|
||||||
hi def link tmuxOptsSet Function
|
|
||||||
hi def link tmuxOptsSetw Function
|
|
||||||
hi def link tmuxString String
|
|
||||||
hi def link tmuxTodo Todo
|
|
||||||
hi def link tmuxVariable Constant
|
|
||||||
hi def link tmuxVariableExpansion Constant
|
|
||||||
|
|
||||||
let b:current_syntax = "tmux"
|
|
4
screen.c
4
screen.c
@ -94,10 +94,10 @@ screen_set_cursor_style(struct screen *s, u_int style)
|
|||||||
|
|
||||||
/* Set screen cursor colour. */
|
/* Set screen cursor colour. */
|
||||||
void
|
void
|
||||||
screen_set_cursor_colour(struct screen *s, const char *colour_string)
|
screen_set_cursor_colour(struct screen *s, const char *colour)
|
||||||
{
|
{
|
||||||
free(s->ccolour);
|
free(s->ccolour);
|
||||||
s->ccolour = xstrdup(colour_string);
|
s->ccolour = xstrdup(colour);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set screen title. */
|
/* Set screen title. */
|
||||||
|
7
status.c
7
status.c
@ -556,7 +556,7 @@ status_message_set(struct client *c, const char *fmt, ...)
|
|||||||
struct message_entry *msg, *msg1;
|
struct message_entry *msg, *msg1;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
int delay;
|
int delay;
|
||||||
u_int first, limit;
|
u_int limit;
|
||||||
|
|
||||||
limit = options_get_number(global_options, "message-limit");
|
limit = options_get_number(global_options, "message-limit");
|
||||||
|
|
||||||
@ -573,10 +573,9 @@ status_message_set(struct client *c, const char *fmt, ...)
|
|||||||
msg->msg = xstrdup(c->message_string);
|
msg->msg = xstrdup(c->message_string);
|
||||||
TAILQ_INSERT_TAIL(&c->message_log, msg, entry);
|
TAILQ_INSERT_TAIL(&c->message_log, msg, entry);
|
||||||
|
|
||||||
first = c->message_next - limit;
|
|
||||||
TAILQ_FOREACH_SAFE(msg, &c->message_log, entry, msg1) {
|
TAILQ_FOREACH_SAFE(msg, &c->message_log, entry, msg1) {
|
||||||
if (msg->msg_num >= first)
|
if (msg->msg_num + limit >= c->message_next)
|
||||||
continue;
|
break;
|
||||||
free(msg->msg);
|
free(msg->msg);
|
||||||
TAILQ_REMOVE(&c->message_log, msg, entry);
|
TAILQ_REMOVE(&c->message_log, msg, entry);
|
||||||
free(msg);
|
free(msg);
|
||||||
|
2
tty.c
2
tty.c
@ -496,7 +496,7 @@ tty_update_mode(struct tty *tty, int mode, struct screen *s)
|
|||||||
{
|
{
|
||||||
int changed;
|
int changed;
|
||||||
|
|
||||||
if (s != NULL && strcmp(s->ccolour, tty->ccolour))
|
if (s != NULL && strcmp(s->ccolour, tty->ccolour) != 0)
|
||||||
tty_force_cursor_colour(tty, s->ccolour);
|
tty_force_cursor_colour(tty, s->ccolour);
|
||||||
|
|
||||||
if (tty->flags & TTY_NOCURSOR)
|
if (tty->flags & TTY_NOCURSOR)
|
||||||
|
2
window.c
2
window.c
@ -991,7 +991,7 @@ window_pane_read_callback(__unused struct bufferevent *bufev, void *data)
|
|||||||
|
|
||||||
new_size = EVBUFFER_LENGTH(evb) - wp->pipe_off;
|
new_size = EVBUFFER_LENGTH(evb) - wp->pipe_off;
|
||||||
if (wp->pipe_fd != -1 && new_size > 0) {
|
if (wp->pipe_fd != -1 && new_size > 0) {
|
||||||
new_data = EVBUFFER_DATA(evb);
|
new_data = EVBUFFER_DATA(evb) + wp->pipe_off;
|
||||||
bufferevent_write(wp->pipe_event, new_data, new_size);
|
bufferevent_write(wp->pipe_event, new_data, new_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user