Permit multiple prefix keys to be defined, separated by commas, for example:

set -g prefix ^a,^b

Any key in the list acts as the prefix. The send-prefix command always sends
the first key in the list.
This commit is contained in:
Nicholas Marriott
2009-09-22 12:38:10 +00:00
parent 6fab9a3e6f
commit 96dd3e8eb9
9 changed files with 118 additions and 29 deletions

14
tmux.h
View File

@ -544,10 +544,14 @@ struct options_entry {
enum {
OPTIONS_STRING,
OPTIONS_NUMBER,
OPTIONS_DATA,
} type;
char *str;
long long num;
void *data;
void (*freefn)(void *);
SPLAY_ENTRY(options_entry) entry;
};
@ -557,6 +561,9 @@ struct options {
struct options *parent;
};
/* Key list for prefix option. */
ARRAY_DECL(keylist, int);
/* Screen selection. */
struct screen_sel {
int flag;
@ -1085,7 +1092,7 @@ struct set_option_entry {
enum {
SET_OPTION_STRING,
SET_OPTION_NUMBER,
SET_OPTION_KEY,
SET_OPTION_KEYS,
SET_OPTION_COLOUR,
SET_OPTION_ATTRIBUTES,
SET_OPTION_FLAG,
@ -1165,6 +1172,9 @@ char *options_get_string(struct options *, const char *);
struct options_entry *options_set_number(
struct options *, const char *, long long);
long long options_get_number(struct options *, const char *);
struct options_entry *options_set_data(
struct options *, const char *, void *, void (*)(void *));
void *options_get_data(struct options *, const char *);
/* environ.c */
int environ_cmp(struct environ_entry *, struct environ_entry *);
@ -1245,7 +1255,7 @@ void set_option_string(struct cmd_ctx *,
struct options *, const struct set_option_entry *, char *, int);
void set_option_number(struct cmd_ctx *,
struct options *, const struct set_option_entry *, char *);
void set_option_key(struct cmd_ctx *,
void set_option_keys(struct cmd_ctx *,
struct options *, const struct set_option_entry *, char *);
void set_option_colour(struct cmd_ctx *,
struct options *, const struct set_option_entry *, char *);