diff --git a/src/cw/Makefile b/src/cw/Makefile index 95a0ad94..dd49a3b3 100644 --- a/src/cw/Makefile +++ b/src/cw/Makefile @@ -106,6 +106,7 @@ KTVSRC=\ cw_ktv_replace.c\ cw_ktv_add_from_str.c\ cw_ktv_get_byte.c\ + cw_ktv_get_bstr16.c\ cw_ktv_set_byte.c\ cw_ktv_get.c\ cw_ktv_get_word.c\ diff --git a/src/cw/cw_ktv_get_bstr16.c b/src/cw/cw_ktv_get_bstr16.c new file mode 100644 index 00000000..ccbcce51 --- /dev/null +++ b/src/cw/cw_ktv_get_bstr16.c @@ -0,0 +1,13 @@ +#include "ktv.h" +#include "bstr.h" + +bstr16_t cw_ktv_get_bstr16(mavl_t ktv,const char *key, bstr16_t def) +{ + cw_KTV_t * k; + k = cw_ktv_get(ktv,key,CW_TYPE_STR); + if (k != NULL){ + return bstr16_create(k->type->data(k),k->type->len(k)); + } + return def; +} + diff --git a/src/cw/ktv.h b/src/cw/ktv.h index bebe884b..2b4966dd 100644 --- a/src/cw/ktv.h +++ b/src/cw/ktv.h @@ -5,7 +5,7 @@ #include #include "mavl.h" - +#include "bstr.h" /** * @addtogroup ALGOS @@ -143,6 +143,7 @@ int cw_ktv_read_file(FILE * file, mavl_t ktv, mavl_t types); cw_KTV_t * cw_ktv_get(mavl_t ktv, const char *key, const cw_Type_t * type); uint8_t cw_ktv_get_byte(mavl_t ktv,const char *key, uint8_t def); cw_KTV_t * cw_ktv_set_byte(mavl_t ktv,const char * key, uint8_t byte); +bstr16_t cw_ktv_get_bstr16(mavl_t ktv,const char *key, bstr16_t def); uint16_t cw_ktv_get_word(mavl_t ktv,const char *key, uint16_t def); uint32_t cw_ktv_get_dword(mavl_t ktv,const char *key, uint32_t def);