summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2009-07-15 07:50:35 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2009-07-15 07:50:35 +0000
commit09676ba8977874e315d4c5ab5a4c5f8196ec18c9 (patch)
tree501751948d3bf828d35f315f42a8c671cf1b6f31 /usr.bin
parente47798ef1a4d1aebea081c092c05b80e986559f8 (diff)
Having to update NSETOPTION/NSETWINDOWOPTION when adding new options is a bit
annoying and it is only use for iterating, so use a sentinel to mark the end of each array instead. Different fix for a problem pointed out by Kalle Olavi Niemitalo.
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/tmux/cmd-set-option.c14
-rw-r--r--usr.bin/tmux/cmd-set-window-option.c14
-rw-r--r--usr.bin/tmux/cmd-show-options.c7
-rw-r--r--usr.bin/tmux/cmd-show-window-options.c7
-rw-r--r--usr.bin/tmux/status.c10
-rw-r--r--usr.bin/tmux/tmux.h4
6 files changed, 23 insertions, 33 deletions
diff --git a/usr.bin/tmux/cmd-set-option.c b/usr.bin/tmux/cmd-set-option.c
index 3a1a60a892f..a97e671add9 100644
--- a/usr.bin/tmux/cmd-set-option.c
+++ b/usr.bin/tmux/cmd-set-option.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-set-option.c,v 1.5 2009/07/13 23:11:35 nicm Exp $ */
+/* $OpenBSD: cmd-set-option.c,v 1.6 2009/07/15 07:50:34 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -48,7 +48,7 @@ const char *set_option_status_keys_list[] = {
const char *set_option_bell_action_list[] = {
"none", "any", "current", NULL
};
-const struct set_option_entry set_option_table[NSETOPTION] = {
+const struct set_option_entry set_option_table[] = {
{ "bell-action", SET_OPTION_CHOICE, 0, 0, set_option_bell_action_list },
{ "buffer-limit", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
{ "default-command", SET_OPTION_STRING, 0, 0, NULL },
@@ -75,6 +75,7 @@ const struct set_option_entry set_option_table[NSETOPTION] = {
{ "status-right", SET_OPTION_STRING, 0, 0, NULL },
{ "status-right-length", SET_OPTION_NUMBER, 0, SHRT_MAX, NULL },
{ "status-utf8", SET_OPTION_FLAG, 0, 0, NULL },
+ { NULL, 0, 0, 0, NULL }
};
int
@@ -84,7 +85,7 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx)
struct session *s;
struct client *c;
struct options *oo;
- const struct set_option_entry *entry;
+ const struct set_option_entry *entry, *opt;
u_int i;
if (data->chflags & CMD_CHFLAG('g'))
@@ -101,15 +102,14 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx)
}
entry = NULL;
- for (i = 0; i < NSETOPTION; i++) {
- if (strncmp(set_option_table[i].name,
- data->option, strlen(data->option)) != 0)
+ for (opt = set_option_table; opt->name != NULL; opt++) {
+ if (strncmp(opt->name, data->option, strlen(data->option)) != 0)
continue;
if (entry != NULL) {
ctx->error(ctx, "ambiguous option: %s", data->option);
return (-1);
}
- entry = &set_option_table[i];
+ entry = opt;
/* Bail now if an exact match. */
if (strcmp(entry->name, data->option) == 0)
diff --git a/usr.bin/tmux/cmd-set-window-option.c b/usr.bin/tmux/cmd-set-window-option.c
index e674e04d5d0..aa3681bcad1 100644
--- a/usr.bin/tmux/cmd-set-window-option.c
+++ b/usr.bin/tmux/cmd-set-window-option.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-set-window-option.c,v 1.5 2009/07/14 20:20:04 nicm Exp $ */
+/* $OpenBSD: cmd-set-window-option.c,v 1.6 2009/07/15 07:50:34 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -48,7 +48,7 @@ const char *set_option_mode_keys_list[] = {
const char *set_option_clock_mode_style_list[] = {
"12", "24", NULL
};
-const struct set_option_entry set_window_option_table[NSETWINDOWOPTION] = {
+const struct set_option_entry set_window_option_table[] = {
{ "aggressive-resize", SET_OPTION_FLAG, 0, 0, NULL },
{ "automatic-rename", SET_OPTION_FLAG, 0, 0, NULL },
{ "clock-mode-colour", SET_OPTION_COLOUR, 0, 0, NULL },
@@ -70,6 +70,7 @@ const struct set_option_entry set_window_option_table[NSETWINDOWOPTION] = {
{ "window-status-bg", SET_OPTION_COLOUR, 0, 0, NULL },
{ "window-status-fg", SET_OPTION_COLOUR, 0, 0, NULL },
{ "xterm-keys", SET_OPTION_FLAG, 0, 0, NULL },
+ { NULL, 0, 0, 0, NULL }
};
int
@@ -79,7 +80,7 @@ cmd_set_window_option_exec(struct cmd *self, struct cmd_ctx *ctx)
struct winlink *wl;
struct client *c;
struct options *oo;
- const struct set_option_entry *entry;
+ const struct set_option_entry *entry, *opt;
u_int i;
if (data->chflags & CMD_CHFLAG('g'))
@@ -96,15 +97,14 @@ cmd_set_window_option_exec(struct cmd *self, struct cmd_ctx *ctx)
}
entry = NULL;
- for (i = 0; i < NSETWINDOWOPTION; i++) {
- if (strncmp(set_window_option_table[i].name,
- data->option, strlen(data->option)) != 0)
+ for (opt = set_window_option_table; opt->name != NULL; opt++) {
+ if (strncmp(opt->name, data->option, strlen(data->option)) != 0)
continue;
if (entry != NULL) {
ctx->error(ctx, "ambiguous option: %s", data->option);
return (-1);
}
- entry = &set_window_option_table[i];
+ entry = opt;
/* Bail now if an exact match. */
if (strcmp(entry->name, data->option) == 0)
diff --git a/usr.bin/tmux/cmd-show-options.c b/usr.bin/tmux/cmd-show-options.c
index c34cff71fa9..4a65acbe8ba 100644
--- a/usr.bin/tmux/cmd-show-options.c
+++ b/usr.bin/tmux/cmd-show-options.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-show-options.c,v 1.3 2009/07/13 23:11:35 nicm Exp $ */
+/* $OpenBSD: cmd-show-options.c,v 1.4 2009/07/15 07:50:34 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -49,7 +49,6 @@ cmd_show_options_exec(struct cmd *self, struct cmd_ctx *ctx)
struct session *s;
struct options *oo;
const struct set_option_entry *entry;
- u_int i;
char *vs;
long long vn;
@@ -61,9 +60,7 @@ cmd_show_options_exec(struct cmd *self, struct cmd_ctx *ctx)
oo = &s->options;
}
- for (i = 0; i < NSETOPTION; i++) {
- entry = &set_option_table[i];
-
+ for (entry = set_option_table; entry->name != NULL; entry++) {
if (options_find1(oo, entry->name) == NULL)
continue;
diff --git a/usr.bin/tmux/cmd-show-window-options.c b/usr.bin/tmux/cmd-show-window-options.c
index 5d0f5b12abf..0f60512fba0 100644
--- a/usr.bin/tmux/cmd-show-window-options.c
+++ b/usr.bin/tmux/cmd-show-window-options.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-show-window-options.c,v 1.3 2009/07/13 23:11:35 nicm Exp $ */
+/* $OpenBSD: cmd-show-window-options.c,v 1.4 2009/07/15 07:50:34 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -49,7 +49,6 @@ cmd_show_window_options_exec(struct cmd *self, struct cmd_ctx *ctx)
struct winlink *wl;
struct options *oo;
const struct set_option_entry *entry;
- u_int i;
char *vs;
long long vn;
@@ -61,9 +60,7 @@ cmd_show_window_options_exec(struct cmd *self, struct cmd_ctx *ctx)
oo = &wl->window->options;
}
- for (i = 0; i < NSETWINDOWOPTION; i++) {
- entry = &set_window_option_table[i];
-
+ for (entry = set_window_option_table; entry->name != NULL; entry++) {
if (options_find1(oo, entry->name) == NULL)
continue;
diff --git a/usr.bin/tmux/status.c b/usr.bin/tmux/status.c
index f684ccc2fd6..98346f06fd1 100644
--- a/usr.bin/tmux/status.c
+++ b/usr.bin/tmux/status.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: status.c,v 1.8 2009/07/14 19:11:58 nicm Exp $ */
+/* $OpenBSD: status.c,v 1.9 2009/07/15 07:50:34 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -898,7 +898,7 @@ status_prompt_complete(const char *s)
const struct set_option_entry *optent;
ARRAY_DECL(, const char *) list;
char *prefix, *s2;
- u_int i;
+ u_int i;
size_t j;
if (*s == '\0')
@@ -910,13 +910,11 @@ status_prompt_complete(const char *s)
if (strncmp((*cmdent)->name, s, strlen(s)) == 0)
ARRAY_ADD(&list, (*cmdent)->name);
}
- for (i = 0; i < NSETOPTION; i++) {
- optent = &set_option_table[i];
+ for (optent = set_option_table; optent->name != NULL; optent++) {
if (strncmp(optent->name, s, strlen(s)) == 0)
ARRAY_ADD(&list, optent->name);
}
- for (i = 0; i < NSETWINDOWOPTION; i++) {
- optent = &set_window_option_table[i];
+ for (optent = set_window_option_table; optent->name != NULL; optent++) {
if (strncmp(optent->name, s, strlen(s)) == 0)
ARRAY_ADD(&list, optent->name);
}
diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h
index ef69679f150..bbd32385095 100644
--- a/usr.bin/tmux/tmux.h
+++ b/usr.bin/tmux/tmux.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.h,v 1.30 2009/07/14 20:20:04 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.31 2009/07/15 07:50:34 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -941,8 +941,6 @@ struct set_option_entry {
};
extern const struct set_option_entry set_option_table[];
extern const struct set_option_entry set_window_option_table[];
-#define NSETOPTION 26
-#define NSETWINDOWOPTION 20
/* tmux.c */
extern volatile sig_atomic_t sigwinch;