From a56029b6d3c072579ee1da7a9f40ec6b1d1f6626 Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Wed, 28 Aug 2019 18:17:59 +0200 Subject: Add plist dictionary helper --- src/common.c | 22 ++++++++++++++++++++++ src/common.h | 3 +++ 2 files changed, 25 insertions(+) diff --git a/src/common.c b/src/common.c index 79dc123..a00cc05 100644 --- a/src/common.c +++ b/src/common.c @@ -547,3 +547,25 @@ void get_user_input(char *buf, int maxlen, int secure) fputs("\n", stdout); buf[len] = 0; } + +uint64_t _plist_dict_get_uint(plist_t dict, const char *key) +{ + uint64_t uintval = 0; + plist_t node = plist_dict_get_item(dict, key); + if (!node) { + return (uint64_t)-1LL; + } + plist_get_uint_val(node, &uintval); + return uintval; +} + +uint8_t _plist_dict_get_bool(plist_t dict, const char *key) +{ + uint8_t bval = 0; + plist_t node = plist_dict_get_item(dict, key); + if (!node) { + return 0; + } + plist_get_bool_val(node, &bval); + return bval; +} diff --git a/src/common.h b/src/common.h index 6c568f8..2c8d07f 100644 --- a/src/common.h +++ b/src/common.h @@ -150,6 +150,9 @@ char* realpath(const char *filename, char *resolved_name); void get_user_input(char *buf, int maxlen, int secure); +uint8_t _plist_dict_get_bool(plist_t dict, const char *key); +uint64_t _plist_dict_get_uint(plist_t dict, const char *key); + #ifdef __cplusplus } #endif -- cgit v1.1-32-gdbae