diff options
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/options.c | 19 | ||||
-rw-r--r-- | desktop/options.h | 9 |
2 files changed, 27 insertions, 1 deletions
diff --git a/desktop/options.c b/desktop/options.c index 4bdac6d24..12468fb84 100644 --- a/desktop/options.c +++ b/desktop/options.c @@ -327,7 +327,7 @@ nsoption_output_value_html_input(struct option_entry_s *option, option->key, (*((char **)option->p) != NULL) ? *((char **)option->p) : - "NULL"); + ""); break; } @@ -537,3 +537,20 @@ nsoption_dump(FILE *outf) } while (res > 0); } +/* exported interface documented in options.h */ +bool nsoption_set_key(const char *key, const char *value) +{ + bool ret = false; + int i; + + for (i = 0; i != option_table_entries; i++) { + if (strcasecmp(key, option_table[i].key) != 0) + continue; + + strtooption(value, option_table + i); + ret = true; + break; + } + + return(ret); +} diff --git a/desktop/options.h b/desktop/options.h index 53c025c18..d5c113baa 100644 --- a/desktop/options.h +++ b/desktop/options.h @@ -179,6 +179,15 @@ int nsoption_snoptionf(char *string, size_t size, unsigned int option, void nsoption_commandline(int *pargc, char **argv); /** +* Set an option by it's key +* +* \param name the option key to search for. +* \param value the value (as string) +* \return true on success, false when the option key is not found. +*/ +bool nsoption_set_key(const char *key, const char *value); + +/** * Set default values for unset front-end specific options */ void gui_options_init_defaults(void); |