Merge branch 'obsd-master' into master

This commit is contained in:
Thomas Adam 2021-08-20 20:01:27 +01:00
commit 944fde7c57
13 changed files with 32 additions and 21 deletions

View File

@ -63,6 +63,17 @@ args_find(struct args *args, u_char flag)
return (RB_FIND(args_tree, &args->tree, &entry)); return (RB_FIND(args_tree, &args->tree, &entry));
} }
/* Create an empty arguments set. */
struct args *
args_create(void)
{
struct args *args;
args = xcalloc(1, sizeof *args);
RB_INIT(&args->tree);
return (args);
}
/* Parse an argv and argc into a new argument set. */ /* Parse an argv and argc into a new argument set. */
struct args * struct args *
args_parse(const char *template, int argc, char **argv) args_parse(const char *template, int argc, char **argv)
@ -70,12 +81,11 @@ args_parse(const char *template, int argc, char **argv)
struct args *args; struct args *args;
int opt; int opt;
args = xcalloc(1, sizeof *args);
optreset = 1; optreset = 1;
optind = 1; optind = 1;
optarg = NULL; optarg = NULL;
args = args_create();
while ((opt = getopt(argc, argv, template)) != -1) { while ((opt = getopt(argc, argv, template)) != -1) {
if (opt < 0) if (opt < 0)
continue; continue;

View File

@ -48,7 +48,7 @@ cmd_find_window_exec(struct cmd *self, struct cmdq_item *item)
struct cmd_find_state *target = cmdq_get_target(item); struct cmd_find_state *target = cmdq_get_target(item);
struct window_pane *wp = target->wp; struct window_pane *wp = target->wp;
const char *s = args->argv[0], *suffix = ""; const char *s = args->argv[0], *suffix = "";
char *filter, *argv = { NULL }; char *filter;
int C, N, T; int C, N, T;
C = args_has(args, 'C'); C = args_has(args, 'C');
@ -91,7 +91,7 @@ cmd_find_window_exec(struct cmd *self, struct cmdq_item *item)
else else
xasprintf(&filter, "#{m%s:*%s*,#{pane_title}}", suffix, s); xasprintf(&filter, "#{m%s:*%s*,#{pane_title}}", suffix, s);
new_args = args_parse("", 1, &argv); new_args = args_create();
if (args_has(args, 'Z')) if (args_has(args, 'Z'))
args_set(new_args, 'Z', NULL); args_set(new_args, 'Z', NULL);
args_set(new_args, 'f', filter); args_set(new_args, 'f', filter);

View File

@ -211,7 +211,7 @@ cmd_list_keys_exec(struct cmd *self, struct cmdq_item *item)
repeat = 0; repeat = 0;
tablewidth = keywidth = 0; tablewidth = keywidth = 0;
table = key_bindings_first_table (); table = key_bindings_first_table();
while (table != NULL) { while (table != NULL) {
if (tablename != NULL && strcmp(table->name, tablename) != 0) { if (tablename != NULL && strcmp(table->name, tablename) != 0) {
table = key_bindings_next_table(table); table = key_bindings_next_table(table);
@ -243,8 +243,7 @@ cmd_list_keys_exec(struct cmd *self, struct cmdq_item *item)
tmpsize = 256; tmpsize = 256;
tmp = xmalloc(tmpsize); tmp = xmalloc(tmpsize);
table = key_bindings_first_table();
table = key_bindings_first_table ();
while (table != NULL) { while (table != NULL) {
if (tablename != NULL && strcmp(table->name, tablename) != 0) { if (tablename != NULL && strcmp(table->name, tablename) != 0) {
table = key_bindings_next_table(table); table = key_bindings_next_table(table);

View File

@ -4078,8 +4078,7 @@ format_replace(struct format_expand_state *es, const char *key, size_t keylen,
case 's': case 's':
if (fm->argc < 2) if (fm->argc < 2)
break; break;
sub = xreallocarray (sub, nsub + 1, sub = xreallocarray(sub, nsub + 1, sizeof *sub);
sizeof *sub);
sub[nsub++] = fm; sub[nsub++] = fm;
break; break;
case '=': case '=':
@ -4188,7 +4187,7 @@ format_replace(struct format_expand_state *es, const char *key, size_t keylen,
value = xstrdup(""); value = xstrdup("");
else else
xasprintf(&value, "%c", c); xasprintf(&value, "%c", c);
free (new); free(new);
goto done; goto done;
} }
@ -4752,7 +4751,7 @@ format_defaults(struct format_tree *ft, struct client *c, struct session *s,
if (wp != NULL) if (wp != NULL)
format_defaults_pane(ft, wp); format_defaults_pane(ft, wp);
pb = paste_get_top (NULL); pb = paste_get_top(NULL);
if (pb != NULL) if (pb != NULL)
format_defaults_paste_buffer(ft, pb); format_defaults_paste_buffer(ft, pb);
} }

View File

@ -333,7 +333,7 @@ input_key_cmp(struct input_key_entry *ike1, struct input_key_entry *ike2)
/* Look for key in tree. */ /* Look for key in tree. */
static struct input_key_entry * static struct input_key_entry *
input_key_get (key_code key) input_key_get(key_code key)
{ {
struct input_key_entry entry = { .key = key }; struct input_key_entry entry = { .key = key };

View File

@ -922,7 +922,7 @@ mode_tree_menu_callback(__unused struct menu *menu, __unused u_int idx,
if (mti->itemdata != mtm->itemdata) if (mti->itemdata != mtm->itemdata)
goto out; goto out;
mtd->current = mtm->line; mtd->current = mtm->line;
mtd->menucb (mtd->modedata, mtm->c, key); mtd->menucb(mtd->modedata, mtm->c, key);
out: out:
mode_tree_remove_ref(mtd); mode_tree_remove_ref(mtd);

View File

@ -146,7 +146,7 @@ parse_window_name(const char *in)
name = copy = xstrdup(in); name = copy = xstrdup(in);
if (*name == '"') if (*name == '"')
name++; name++;
name[strcspn (name, "\"")] = '\0'; name[strcspn(name, "\"")] = '\0';
if (strncmp(name, "exec ", (sizeof "exec ") - 1) == 0) if (strncmp(name, "exec ", (sizeof "exec ") - 1) == 0)
name = name + (sizeof "exec ") - 1; name = name + (sizeof "exec ") - 1;

View File

@ -697,6 +697,6 @@ screen_mode_to_string(int mode)
strlcat(tmp, "CRLF,", sizeof tmp); strlcat(tmp, "CRLF,", sizeof tmp);
if (mode & MODE_KEXTENDED) if (mode & MODE_KEXTENDED)
strlcat(tmp, "KEXTENDED,", sizeof tmp); strlcat(tmp, "KEXTENDED,", sizeof tmp);
tmp[strlen (tmp) - 1] = '\0'; tmp[strlen(tmp) - 1] = '\0';
return (tmp); return (tmp);
} }

View File

@ -2379,7 +2379,7 @@ server_client_set_flags(struct client *c, const char *flags)
uint64_t flag; uint64_t flag;
int not; int not;
s = copy = xstrdup (flags); s = copy = xstrdup(flags);
while ((next = strsep(&s, ",")) != NULL) { while ((next = strsep(&s, ",")) != NULL) {
not = (*next == '!'); not = (*next == '!');
if (not) if (not)

View File

@ -1413,7 +1413,7 @@ process_key:
break; break;
if (c->prompt_buffer[0].size == 0) { if (c->prompt_buffer[0].size == 0) {
prefix = '='; prefix = '=';
free (c->prompt_buffer); free(c->prompt_buffer);
c->prompt_buffer = utf8_fromcstr(c->prompt_last); c->prompt_buffer = utf8_fromcstr(c->prompt_last);
c->prompt_index = utf8_strlen(c->prompt_buffer); c->prompt_index = utf8_strlen(c->prompt_buffer);
} else } else
@ -1424,7 +1424,7 @@ process_key:
break; break;
if (c->prompt_buffer[0].size == 0) { if (c->prompt_buffer[0].size == 0) {
prefix = '='; prefix = '=';
free (c->prompt_buffer); free(c->prompt_buffer);
c->prompt_buffer = utf8_fromcstr(c->prompt_last); c->prompt_buffer = utf8_fromcstr(c->prompt_last);
c->prompt_index = utf8_strlen(c->prompt_buffer); c->prompt_index = utf8_strlen(c->prompt_buffer);
} else } else

1
tmux.h
View File

@ -2183,6 +2183,7 @@ int tty_keys_next(struct tty *);
/* arguments.c */ /* arguments.c */
void args_set(struct args *, u_char, const char *); void args_set(struct args *, u_char, const char *);
struct args *args_create(void);
struct args *args_parse(const char *, int, char **); struct args *args_parse(const char *, int, char **);
void args_free(struct args *); void args_free(struct args *);
char *args_print(struct args *); char *args_print(struct args *);

View File

@ -2226,7 +2226,7 @@ window_copy_cmd_search_backward_incremental(struct window_copy_cmd_state *cs)
data->timeout = 0; data->timeout = 0;
log_debug ("%s: %s", __func__, argument); log_debug("%s: %s", __func__, argument);
prefix = *argument++; prefix = *argument++;
if (data->searchx == -1 || data->searchy == -1) { if (data->searchx == -1 || data->searchy == -1) {
@ -2281,7 +2281,7 @@ window_copy_cmd_search_forward_incremental(struct window_copy_cmd_state *cs)
data->timeout = 0; data->timeout = 0;
log_debug ("%s: %s", __func__, argument); log_debug("%s: %s", __func__, argument);
prefix = *argument++; prefix = *argument++;
if (data->searchx == -1 || data->searchy == -1) { if (data->searchx == -1 || data->searchy == -1) {
@ -2859,7 +2859,7 @@ window_copy_command(struct window_mode_entry *wme, struct client *c,
args->argc - 1 > window_copy_cmd_table[i].maxargs) args->argc - 1 > window_copy_cmd_table[i].maxargs)
break; break;
clear = window_copy_cmd_table[i].clear; clear = window_copy_cmd_table[i].clear;
action = window_copy_cmd_table[i].f (&cs); action = window_copy_cmd_table[i].f(&cs);
break; break;
} }
} }

View File

@ -931,6 +931,8 @@ window_pane_create(struct window *w, u_int sx, u_int sy, u_int hlimit)
wp->pipe_fd = -1; wp->pipe_fd = -1;
colour_palette_init(&wp->palette); colour_palette_init(&wp->palette);
colour_palette_from_option(&wp->palette, wp->options);
screen_init(&wp->base, sx, sy, hlimit); screen_init(&wp->base, sx, sy, hlimit);
wp->screen = &wp->base; wp->screen = &wp->base;