Sync OpenBSD patchset 1032:

Allow a single option to be specified to show-options to show just that
option.
This commit is contained in:
Tiago Cunha
2012-03-03 09:16:52 +00:00
parent e0d2221879
commit 95f427c34e
5 changed files with 63 additions and 45 deletions

View File

@ -731,3 +731,36 @@ options_table_print_entry(
}
return (out);
}
/* Find an option. */
int
options_table_find(
const char *optstr, const struct options_table_entry **table,
const struct options_table_entry **oe)
{
static const struct options_table_entry *tables[] = {
server_options_table,
window_options_table,
session_options_table
};
const struct options_table_entry *oe_loop;
u_int i;
for (i = 0; i < nitems(tables); i++) {
for (oe_loop = tables[i]; oe_loop->name != NULL; oe_loop++) {
if (strncmp(oe_loop->name, optstr, strlen(optstr)) != 0)
continue;
/* If already found, ambiguous. */
if (*oe != NULL)
return (-1);
*oe = oe_loop;
*table = tables[i];
/* Bail now if an exact match. */
if (strcmp((*oe)->name, optstr) == 0)
break;
}
}
return (0);
}