=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/options-table.c,v retrieving revision 1.21 retrieving revision 1.22 diff -c -r1.21 -r1.22 *** src/usr.bin/tmux/options-table.c 2012/02/15 18:44:49 1.21 --- src/usr.bin/tmux/options-table.c 2012/02/25 12:57:42 1.22 *************** *** 1,4 **** ! /* $OpenBSD: options-table.c,v 1.21 2012/02/15 18:44:49 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: options-table.c,v 1.22 2012/02/25 12:57:42 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott *************** *** 569,574 **** --- 569,581 ---- .default_num = 0 }, + { .name = "rate-limit", + .type = OPTIONS_TABLE_NUMBER, + .minimum = 0, + .maximum = UINT_MAX, + .default_num = 0 + }, + { .name = "remain-on-exit", .type = OPTIONS_TABLE_FLAG, .default_num = 0 *************** *** 731,734 **** --- 738,774 ---- break; } 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); }