From 4f3b576db6b01c8c88076985478e2a7fa37be340 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Thu, 18 May 2023 23:51:51 +0200 Subject: TOML settings parsing Currently a very simplistic parser that do not support all TOML datatypes. Supported are: - Tables - Strings (incl multiline) - Integers - Inline Tables - Booleans - Comments --- src/dged/settings.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/dged/settings.h') diff --git a/src/dged/settings.h b/src/dged/settings.h index 5d245d9..80f6b0f 100644 --- a/src/dged/settings.h +++ b/src/dged/settings.h @@ -135,3 +135,25 @@ void setting_set_value(struct setting *setting, struct setting_value val); * @param n Size in bytes of @ref buf. */ void setting_to_string(struct setting *setting, char *buf, size_t n); + +/** + * Parse settings from a string in TOML format. + * + * @param toml Pointer to a NULL-terminated string containing TOML settings. + * @param errmsgs Pointer to a string array where error messages will be placed. These + * messages must be freed after use. + * @returns 0 on success, n > 0 where n denotes the number of error messages in + * @ref errmsgs + */ +int32_t settings_from_string(const char *toml, char **errmsgs[]); + +/** + * Parse settings from a file in TOML format. + * + * @param toml Pointer to a NULL-terminated string describing a path to a TOML file with settings. + * @param errmsgs Pointer to a string array where error messages will be placed. These + * messages must be freed after use. + * @returns 0 on success, n > 0 where n denotes the number of error messages in + * @ref errmsgs + */ +int32_t settings_from_file(const char *path, char **errmsgs[]); -- cgit v1.2.3