--- libaitcfg/inc/aitcfg.h 2025/08/19 11:40:13 1.20.2.2 +++ libaitcfg/inc/aitcfg.h 2026/08/04 18:51:43 1.22.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitcfg.h,v 1.20.2.2 2025/08/19 11:40:13 misho Exp $ +* $Id: aitcfg.h,v 1.22.2.1 2026/08/04 18:51:43 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004 - 2025 +Copyright 2004 - 2026 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -111,6 +111,15 @@ void cfgEndConfig(cfg_root_t **pcfg); */ int cfgInitConfigExt(cfg_root_t * __restrict cfg); /* + * cfgLoadConfigExt() - Load config from file with recursion level of includes + * + * @cfgName = Config filename + * @cfg = Config root + * @lvl = Level of include recursion + * return: -1 error or 0 ok + */ +int cfgLoadConfigExt(const char *cfgName, cfg_root_t * __restrict cfg, int lvl); +/* * cfgLoadConfig() - Load config from file * * @cfgName = Config filename @@ -167,13 +176,15 @@ int cfgReadLines(FILE *f, const char *delim, const cha ait_val_t *cfgWriteLines(FILE *f, const char *delim, const char *eol, const char *section, cfg_root_t * __restrict cfg); /* - * cfgReadConfig() - Read file and add new item at config root + * cfg_ReadConfig() - Read file and add new item at config root * * @f = File resource * @cfg = Config root + * @lvl = Level of include recursion * return: -1 error or 0 ok */ -int cfgReadConfig(FILE *f, cfg_root_t * __restrict cfg); +int cfg_ReadConfig(FILE *f, cfg_root_t * __restrict cfg, int lvl); +#define cfgReadConfig(f, c) cfg_ReadConfig((f), (c), 1) /* * cfgWriteConfig() - Write config from memory * @@ -216,6 +227,14 @@ int cfgMergeConfig(cfg_root_t * __restrict cfg, cfg_ro * return: none */ void cfg_dumpCfg(cfg_root_t * __restrict cfg); +/* + * cfg_delSection() - Delete entire section + * + * @cfg = Config root + * @csSec = Config section //[{csSec}] + * return: -1 error, 0 nothing deleted or >0 deleted attributes + */ +int cfg_delSection(cfg_root_t * __restrict cfg, const char *csSec); /* * cfg_getSection() - Get entire section attributes into array *