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.
This commit is contained in:
Nicholas Marriott
2009-07-15 17:44:47 +00:00
parent 6ebb1df8fe
commit ff90170738
6 changed files with 23 additions and 33 deletions

View File

@ -1,4 +1,4 @@
/* $Id: status.c,v 1.93 2009-07-15 17:44:06 nicm Exp $ */
/* $Id: status.c,v 1.94 2009-07-15 17:44:47 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);
}