Simplify input_options function

This commit is contained in:
Jay McCarthy 2014-11-26 14:09:32 -05:00
parent 20da006556
commit 4f15c31a16

View File

@ -194,34 +194,29 @@ static const input_driver_t *input_drivers[] = {
* the drivers. * the drivers.
*/ */
const char* config_get_input_driver_options(void) const char* config_get_input_driver_options(void) {
{ char *input_options = NULL;
char *input_options; int input_option_k = 0;
int i; int input_options_len = 0;
int input_option_k = 0;
int input_options_len = 0; union string_list_elem_attr attr;
unsigned offset = 0; attr.i = 0;
struct string_list *input_options_l = string_list_new();
while (input_drivers[input_option_k]) for (input_option_k = 0; input_drivers[input_option_k]; input_option_k++) {
{ const char *opt = input_drivers[input_option_k]->ident;
const char *opt = input_drivers[input_option_k]->ident; input_options_len += strlen(opt) + 1;
input_options_len += strlen(opt) + 1; string_list_append(input_options_l, opt, attr);
input_option_k++; }
}
input_options = (char*)calloc(input_options_len, sizeof(char)); input_options = (char*)calloc(input_options_len, sizeof(char));
for (i = 0; i < input_option_k; i++) string_list_join_concat(input_options, input_options_len, input_options_l, "|");
{
const char *opt = input_drivers[i]->ident; string_list_free(input_options_l);
strlcpy(input_options + offset, opt, input_options_len - offset); input_options_l = NULL;
offset += strlen(opt);
input_options[offset] = '|';
offset += 1;
}
input_options[input_options_len - 1] = '\0';
return input_options; return input_options;
} }
static const input_osk_driver_t *osk_drivers[] = { static const input_osk_driver_t *osk_drivers[] = {