UCI_ERR_NOTFOUND,
UCI_ERR_IO,
UCI_ERR_PARSE,
+ UCI_ERR_DUPLICATE,
UCI_ERR_UNKNOWN,
UCI_ERR_LAST
};
struct uci_section;
struct uci_option;
struct uci_history;
+struct uci_context;
struct uci_parse_context;
/**
+ * uci_parse_tuple: Parse an uci tuple
+ * @ctx: uci context
+ * @str: input string
+ * @package: output package pointer
+ * @section: output section pointer
+ * @option: output option pointer
+ * @value: output value pointer
+ *
+ * format: <package>[.<section>[.<option>]][=<value>]
+ */
+extern int uci_parse_tuple(struct uci_context *ctx, char *str, char **package, char **section, char **option, char **value);
+
+/**
* uci_alloc_context: Allocate a new uci context
*/
extern struct uci_context *uci_alloc_context(void);
* @stream: file stream to import from
* @name: (optional) assume the config has the given name
* @package: (optional) store the last parsed config package in this variable
+ * @single: ignore the 'package' keyword and parse everything into a single package
*
* the name parameter is for config files that don't explicitly use the 'package <...>' keyword
*/
-extern int uci_import(struct uci_context *ctx, FILE *stream, const char *name, struct uci_package **package);
+extern int uci_import(struct uci_context *ctx, FILE *stream, const char *name, struct uci_package **package, bool single);
/**
* uci_export: Export one or all uci config packages
* @ctx: uci context
* @stream: output stream
* @package: (optional) uci config package to export
+ * @header: include the package header
*/
-extern int uci_export(struct uci_context *ctx, FILE *stream, struct uci_package *package);
+extern int uci_export(struct uci_context *ctx, FILE *stream, struct uci_package *package, bool header);
/**
* uci_load: Parse an uci config file and store it in the uci context
extern int uci_set(struct uci_context *ctx, char *package, char *section, char *option, char *value);
/**
+ * uci_commit: commit changes to a package
+ * @ctx: uci context
+ * @p: uci_package struct
+ */
+extern int uci_commit(struct uci_context *ctx, struct uci_package *p);
+
+/**
* uci_list_configs: List available uci config files
*
* @ctx: uci context