diff options
Diffstat (limited to 'src/dged/lang.h')
| -rw-r--r-- | src/dged/lang.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/dged/lang.h b/src/dged/lang.h index 51d9ac3..8f8a604 100644 --- a/src/dged/lang.h +++ b/src/dged/lang.h @@ -4,6 +4,9 @@ #include <stdbool.h> #include <stdint.h> +struct setting; +struct setting_value; + /** * Settings for a programming language. */ @@ -30,6 +33,11 @@ struct language { void languages_init(bool register_default); /** + * Free up resources associated with a language. + */ +void lang_destroy(struct language *lang); + +/** * Get a language config by file name. * * @param[in] filename File name. @@ -46,4 +54,44 @@ struct language lang_from_filename(const char *filename); */ struct language lang_from_id(const char *id); +/** + * Get all settings associated with a language. + * + * @param lang The language to get settings for. + * @param settings Result array for settings. + * @param nsettings resulting number of settings placed in @ref settings. + */ +void lang_settings(struct language *lang, struct setting **settings[], + uint32_t *nsettings); + +/** + * Get a single setting for a language. + * + * @param lang The language to get setting for. + * @param key The setting key, relative to the language. + * + * @returns The setting if found, else NULL. + */ +struct setting *lang_setting(struct language *lang, const char *key); + +/** + * Set a setting for a language. + * + * @param lang The language to set for. + * @param key The setting key, relative to the language. + * @param value The value to set + */ +void lang_setting_set(struct language *lang, const char *key, + struct setting_value value); + +/** + * Set a default value for a language setting. + * + * @param lang The language to set for. + * @param key The setting key, relative to the language. + * @param value The value to set + */ +void lang_setting_set_default(struct language *lang, const char *key, + struct setting_value value); + #endif |
