--- libaitcfg/inc/aitcfg.h 2023/01/23 23:27:26 1.19 +++ libaitcfg/inc/aitcfg.h 2025/10/09 16:43:04 1.22 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitcfg.h,v 1.19 2023/01/23 23:27:26 misho Exp $ +* $Id: aitcfg.h,v 1.22 2025/10/09 16:43:04 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 - 2023 +Copyright 2004 - 2025 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -74,6 +74,9 @@ typedef struct tagRC { #define CFG_ATTRIBUTE(x) (assert((x)), AIT_GET_LIKE(&((struct tagCfg*) (x))->cfg_attr, const char*)) #define CFG_VALUE(x) (assert((x)), AIT_GET_LIKE(&((struct tagCfg*) (x))->cfg_val, const char*)) +#ifdef __cplusplus +extern "C" { +#endif // cfg_GetErrno() Get error code of last operation int cfg_GetErrno(); @@ -101,6 +104,13 @@ cfg_root_t *cfgInitConfig(); */ void cfgEndConfig(cfg_root_t **pcfg); /* + * cfgInitConfigExt() - Init existed config root + * + * @cfg = Config root + * return: -1 error or 0 inited config root + */ +int cfgInitConfigExt(cfg_root_t * __restrict cfg); +/* * cfgLoadConfig() - Load config from file * * @cfgName = Config filename @@ -207,6 +217,14 @@ int cfgMergeConfig(cfg_root_t * __restrict cfg, cfg_ro */ 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 * * @cfg = Config root @@ -310,5 +328,8 @@ int cfg_unsetAttribute(cfg_root_t * __restrict cfg, co int cfg_loadAttribute(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr, ait_val_t * __restrict val, const char *csDefValue); +#ifdef __cplusplus +} +#endif #endif