This is an automated email from the ASF dual-hosted git repository.
jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
The following commit(s) were added to refs/heads/master by this push:
new d5b810de6 util/scfg: Update for c++
d5b810de6 is described below
commit d5b810de678a2db54afba52f24eaa75967e5802d
Author: Jerzy Kasenberg <[email protected]>
AuthorDate: Fri Jul 4 20:01:58 2025 +0200
util/scfg: Update for c++
This:
- adds standard __cplusplus block
- changes filed name private to priv so file struct
can be used in C++ where private is keyword
- adds const to scfg_register name parameter that
would block usage in C++ where string literal
const-ness is enforced
Signed-off-by: Jerzy Kasenberg <[email protected]>
---
sys/config/include/config/config.h | 2 +-
util/scfg/include/scfg/scfg.h | 16 +++++++++++++---
util/scfg/src/scfg.c | 4 ++--
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/sys/config/include/config/config.h
b/sys/config/include/config/config.h
index 174fcbf80..81ab7a6f4 100644
--- a/sys/config/include/config/config.h
+++ b/sys/config/include/config/config.h
@@ -171,7 +171,7 @@ struct conf_handler {
/**
* The name of the conifguration item/subtree
*/
- char *ch_name;
+ const char *ch_name;
/**
* Whether to use the extended callbacks.
diff --git a/util/scfg/include/scfg/scfg.h b/util/scfg/include/scfg/scfg.h
index caa64b744..64ad06580 100644
--- a/util/scfg/include/scfg/scfg.h
+++ b/util/scfg/include/scfg/scfg.h
@@ -20,7 +20,13 @@
#ifndef H_SCFG_
#define H_SCFG_
-#include "config/config.h"
+#include <stdbool.h>
+#include <stdint.h>
+#include <config/config.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
struct scfg_setting {
/** The name of the setting. */
@@ -42,7 +48,7 @@ struct scfg_setting {
* Whether this setting contains private data. If true, the value is
* hidden in config dump output.
*/
- bool private;
+ bool priv;
};
struct scfg_group {
@@ -96,6 +102,10 @@ int scfg_save_val(const struct scfg_group *group, const
void *val);
*
* @return 0 on success; SYS_E[...] code on failure.
*/
-int scfg_register(struct scfg_group *group, char *name);
+int scfg_register(struct scfg_group *group, const char *name);
+
+#ifdef __cplusplus
+}
+#endif
#endif
diff --git a/util/scfg/src/scfg.c b/util/scfg/src/scfg.c
index 3b3c76b4f..409ef7810 100644
--- a/util/scfg/src/scfg.c
+++ b/util/scfg/src/scfg.c
@@ -154,7 +154,7 @@ scfg_handler_export(void (*func)(char *name, char *val),
SCFG_FOREACH_SETTING(group, setting) {
scfg_setting_id(group->handler.ch_name, setting->name, id_buf);
- if (setting->private) {
+ if (setting->priv) {
val = "<set>";
} else {
val = conf_str_from_value(setting->type, setting->val,
@@ -218,7 +218,7 @@ scfg_save_val(const struct scfg_group *group, const void
*val)
}
int
-scfg_register(struct scfg_group *group, char *name)
+scfg_register(struct scfg_group *group, const char *name)
{
const struct scfg_setting *setting;
int rc;