Merge branch 'master' into sixel-passthrough

This commit is contained in:
Nicholas Marriott 2019-12-04 12:41:09 +00:00
commit 7c033a74e2
10 changed files with 49 additions and 27 deletions

16
CHANGES
View File

@ -59,6 +59,20 @@ CHANGES FROM 3.0 to X.X
* Add reverse sorting in tree, client and buffer modes. * Add reverse sorting in tree, client and buffer modes.
CHANGES FROM 3.0 to 3.0a
* Do not require REG_STARTEND.
* Respawn panes or windows correctly if default-command is set.
* Add missing option for after-kill-pane hook.
* Fix for crash with a format variable that doesn't exist.
* Do not truncate list-keys output on some platforms.
* Do not crash when restoring a layout with only one pane.
CHANGES FROM 2.9 to 3.0 CHANGES FROM 2.9 to 3.0
* Workaround invalid layout strings generated by older tmux versions and add * Workaround invalid layout strings generated by older tmux versions and add
@ -149,7 +163,7 @@ CHANGES FROM 2.9 to 3.0
* Add the ability to create simple menus. Introduces new command * Add the ability to create simple menus. Introduces new command
display-menu. Default menus are bound to MouseDown3 on the status line; display-menu. Default menus are bound to MouseDown3 on the status line;
MouseDown3 or M-MouseDown3 on panes; MouseDown3 in tree, client and MouseDown3 or M-MouseDown3 on panes; MouseDown3 in tree, client and
buffer modes; and C-b C-m and C-b M-m. buffer modes; and C-b < and >.
* Allow panes to be empty (no command). They can be created either by piping to * Allow panes to be empty (no command). They can be created either by piping to
split-window -I, or by passing an empty command ('') to split-window. Output split-window -I, or by passing an empty command ('') to split-window. Output

View File

@ -59,8 +59,8 @@ attributes_fromstring(const char *str)
size_t end; size_t end;
u_int i; u_int i;
struct { struct {
const char* name; const char *name;
int attr; int attr;
} table[] = { } table[] = {
{ "bright", GRID_ATTR_BRIGHT }, { "bright", GRID_ATTR_BRIGHT },
{ "bold", GRID_ATTR_BRIGHT }, { "bold", GRID_ATTR_BRIGHT },

View File

@ -61,12 +61,31 @@ void warn(const char *, ...);
void warnx(const char *, ...); void warnx(const char *, ...);
#endif #endif
#ifndef HAVE_PATHS_H #ifdef HAVE_PATHS_H
#define _PATH_BSHELL "/bin/sh" #include <paths.h>
#define _PATH_TMP "/tmp/" #endif
#ifndef _PATH_BSHELL
#define _PATH_BSHELL "/bin/sh"
#endif
#ifndef _PATH_TMP
#define _PATH_TMP "/tmp/"
#endif
#ifndef _PATH_DEVNULL
#define _PATH_DEVNULL "/dev/null" #define _PATH_DEVNULL "/dev/null"
#endif
#ifndef _PATH_TTY
#define _PATH_TTY "/dev/tty" #define _PATH_TTY "/dev/tty"
#endif
#ifndef _PATH_DEV
#define _PATH_DEV "/dev/" #define _PATH_DEV "/dev/"
#endif
#ifndef _PATH_DEFPATH
#define _PATH_DEFPATH "/usr/bin:/bin" #define _PATH_DEFPATH "/usr/bin:/bin"
#endif #endif
@ -98,10 +117,6 @@ void warnx(const char *, ...);
#include "compat/bitstring.h" #include "compat/bitstring.h"
#endif #endif
#ifdef HAVE_PATHS_H
#include <paths.h>
#endif
#ifdef HAVE_LIBUTIL_H #ifdef HAVE_LIBUTIL_H
#include <libutil.h> #include <libutil.h>
#endif #endif

2
grid.c
View File

@ -204,7 +204,7 @@ grid_clear_cell(struct grid *gd, u_int px, u_int py, u_int bg)
/* Check grid y position. */ /* Check grid y position. */
static int static int
grid_check_y(struct grid *gd, const char* from, u_int py) grid_check_y(struct grid *gd, const char *from, u_int py)
{ {
if (py >= gd->hsize + gd->sy) { if (py >= gd->hsize + gd->sy) {
log_debug("%s: y out of range: %u", from, py); log_debug("%s: y out of range: %u", from, py);

View File

@ -24,12 +24,6 @@
#include "tmux.h" #include "tmux.h"
#define DEFAULT_CLIENT_MENU \
" 'Detach' 'd' {detach-client}" \
" 'Detach & Kill' 'X' {detach-client -P}" \
" 'Detach Others' 'o' {detach-client -a}" \
" ''" \
" 'Lock' 'l' {lock-client}"
#define DEFAULT_SESSION_MENU \ #define DEFAULT_SESSION_MENU \
" 'Next' 'n' {switch-client -n}" \ " 'Next' 'n' {switch-client -n}" \
" 'Previous' 'p' {switch-client -p}" \ " 'Previous' 'p' {switch-client -p}" \
@ -325,7 +319,6 @@ key_bindings_init(void)
"bind -n MouseDrag1Pane if -Ft= '#{mouse_any_flag}' 'if -Ft= \"#{pane_in_mode}\" \"copy-mode -M\" \"send-keys -M\"' 'copy-mode -M'", "bind -n MouseDrag1Pane if -Ft= '#{mouse_any_flag}' 'if -Ft= \"#{pane_in_mode}\" \"copy-mode -M\" \"send-keys -M\"' 'copy-mode -M'",
"bind -n WheelUpPane if -Ft= '#{mouse_any_flag}' 'send-keys -M' 'if -Ft= \"#{pane_in_mode}\" \"send-keys -M\" \"copy-mode -et=\"'", "bind -n WheelUpPane if -Ft= '#{mouse_any_flag}' 'send-keys -M' 'if -Ft= \"#{pane_in_mode}\" \"send-keys -M\" \"copy-mode -et=\"'",
"bind -n MouseDown3StatusRight display-menu -t= -xM -yS -T \"#[align=centre]#{client_name}\" " DEFAULT_CLIENT_MENU,
"bind -n MouseDown3StatusLeft display-menu -t= -xM -yS -T \"#[align=centre]#{session_name}\" " DEFAULT_SESSION_MENU, "bind -n MouseDown3StatusLeft display-menu -t= -xM -yS -T \"#[align=centre]#{session_name}\" " DEFAULT_SESSION_MENU,
"bind -n MouseDown3Status display-menu -t= -xW -yS -T \"#[align=centre]#{window_index}:#{window_name}\" " DEFAULT_WINDOW_MENU, "bind -n MouseDown3Status display-menu -t= -xW -yS -T \"#[align=centre]#{window_index}:#{window_name}\" " DEFAULT_WINDOW_MENU,
"bind < display-menu -xW -yS -T \"#[align=centre]#{window_index}:#{window_name}\" " DEFAULT_WINDOW_MENU, "bind < display-menu -xW -yS -T \"#[align=centre]#{window_index}:#{window_name}\" " DEFAULT_WINDOW_MENU,

View File

@ -610,7 +610,7 @@ options_match(const char *s, int *idx, int *ambiguous)
struct options_entry * struct options_entry *
options_match_get(struct options *oo, const char *s, int *idx, int only, options_match_get(struct options *oo, const char *s, int *idx, int only,
int* ambiguous) int *ambiguous)
{ {
char *name; char *name;
struct options_entry *o; struct options_entry *o;

View File

@ -1579,7 +1579,7 @@ server_client_check_exit(struct client *c)
/* Redraw timer callback. */ /* Redraw timer callback. */
static void static void
server_client_redraw_timer(__unused int fd, __unused short events, server_client_redraw_timer(__unused int fd, __unused short events,
__unused void* data) __unused void *data)
{ {
log_debug("redraw timer fired"); log_debug("redraw timer fired");
} }

View File

@ -333,7 +333,7 @@ window_buffer_resize(struct window_mode_entry *wme, u_int sx, u_int sy)
} }
static void static void
window_buffer_do_delete(void* modedata, void *itemdata, window_buffer_do_delete(void *modedata, void *itemdata,
__unused struct client *c, __unused key_code key) __unused struct client *c, __unused key_code key)
{ {
struct window_buffer_modedata *data = modedata; struct window_buffer_modedata *data = modedata;
@ -347,7 +347,7 @@ window_buffer_do_delete(void* modedata, void *itemdata,
} }
static void static void
window_buffer_do_paste(void* modedata, void *itemdata, struct client *c, window_buffer_do_paste(void *modedata, void *itemdata, struct client *c,
__unused key_code key) __unused key_code key)
{ {
struct window_buffer_modedata *data = modedata; struct window_buffer_modedata *data = modedata;

View File

@ -313,7 +313,7 @@ window_client_resize(struct window_mode_entry *wme, u_int sx, u_int sy)
} }
static void static void
window_client_do_detach(void* modedata, void *itemdata, window_client_do_detach(void *modedata, void *itemdata,
__unused struct client *c, key_code key) __unused struct client *c, key_code key)
{ {
struct window_client_modedata *data = modedata; struct window_client_modedata *data = modedata;

View File

@ -317,7 +317,7 @@ window_tree_filter_pane(struct session *s, struct winlink *wl,
static int static int
window_tree_build_window(struct session *s, struct winlink *wl, window_tree_build_window(struct session *s, struct winlink *wl,
void* modedata, struct mode_tree_sort_criteria *sort_crit, void *modedata, struct mode_tree_sort_criteria *sort_crit,
struct mode_tree_item *parent, const char *filter) struct mode_tree_item *parent, const char *filter)
{ {
struct window_tree_modedata *data = modedata; struct window_tree_modedata *data = modedata;
@ -383,7 +383,7 @@ empty:
} }
static void static void
window_tree_build_session(struct session *s, void* modedata, window_tree_build_session(struct session *s, void *modedata,
struct mode_tree_sort_criteria *sort_crit, const char *filter) struct mode_tree_sort_criteria *sort_crit, const char *filter)
{ {
struct window_tree_modedata *data = modedata; struct window_tree_modedata *data = modedata;
@ -973,7 +973,7 @@ window_tree_get_target(struct window_tree_itemdata *item,
} }
static void static void
window_tree_command_each(void* modedata, void* itemdata, struct client *c, window_tree_command_each(void *modedata, void *itemdata, struct client *c,
__unused key_code key) __unused key_code key)
{ {
struct window_tree_modedata *data = modedata; struct window_tree_modedata *data = modedata;
@ -1030,7 +1030,7 @@ window_tree_command_free(void *modedata)
} }
static void static void
window_tree_kill_each(__unused void* modedata, void* itemdata, window_tree_kill_each(__unused void *modedata, void *itemdata,
__unused struct client *c, __unused key_code key) __unused struct client *c, __unused key_code key)
{ {
struct window_tree_itemdata *item = itemdata; struct window_tree_itemdata *item = itemdata;