summaryrefslogtreecommitdiff
path: root/core/emit.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/emit.c')
-rw-r--r--core/emit.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/core/emit.c b/core/emit.c
new file mode 100644
index 0000000..ec00ed2
--- /dev/null
+++ b/core/emit.c
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2026, Apollo Telephone Laboratories.
+ * Provided under the BSD-3 clause.
+ */
+
+#include <stdio.h>
+#include "defconf/emit.h"
+
+int
+emit_data(const char *ident, struct data_value *v)
+{
+ if (ident == NULL || v == NULL) {
+ return -1;
+ }
+
+ switch (v->type) {
+ case DATA_TYPE_INT:
+ printf("-D%s=%zu\n", ident, v->v);
+ return 0;
+ case DATA_TYPE_STR:
+ printf("-D%s=\"%s\"\n", ident, v->s);
+ return 0;
+ }
+
+ printf("fatal: got bad data value during emission\n");
+ return -1;
+}