The value of a number of booleans is shown as "on" and "off" in the plain
output, and as an actual boolean in JSON mode. Add a function that does
that.

Signed-off-by: Petr Machata <m...@pmachata.org>
---
 include/utils.h | 1 +
 lib/utils.c     | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/include/utils.h b/include/utils.h
index bd62cdcd7122..e3cdb098834a 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -328,5 +328,6 @@ int do_batch(const char *name, bool force,
 int parse_one_of(const char *msg, const char *realval, const char * const 
*list,
                 size_t len, int *p_err);
 int parse_on_off(const char *msg, const char *realval, int *p_err);
+void print_on_off_bool(FILE *fp, const char *flag, bool val);
 
 #endif /* __UTILS_H__ */
diff --git a/lib/utils.c b/lib/utils.c
index 930877ae0f0d..8deec86ecbcd 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -1763,3 +1763,11 @@ int parse_on_off(const char *msg, const char *realval, 
int *p_err)
 
        return parse_one_of(msg, realval, values_on_off, 
ARRAY_SIZE(values_on_off), p_err);
 }
+
+void print_on_off_bool(FILE *fp, const char *flag, bool val)
+{
+       if (is_json_context())
+               print_bool(PRINT_JSON, flag, NULL, val);
+       else
+               fprintf(fp, "%s %s ", flag, val ? "on" : "off");
+}
-- 
2.25.1

Reply via email to