New members for mbag_typedef.
FossilOrigin-Name: 054af4c80f4e6772e82f471c78f1a1794392551a31f64b96ef44367c40ad72fe
This commit is contained in:
parent
5e339914e9
commit
4580d0d310
@ -1,36 +1,67 @@
|
||||
#include "mbag.h"
|
||||
#include "capwap.h"
|
||||
#include "format.h"
|
||||
|
||||
|
||||
static int mbag_bstr16str(void *item,char *dst)
|
||||
{
|
||||
mbag_item_t *i= item;
|
||||
|
||||
|
||||
|
||||
char *d = dst;
|
||||
int utf8 = cw_is_utf8(bstr16_data(i->data), bstr16_len(i->data));
|
||||
|
||||
|
||||
if (utf8) {
|
||||
d += sprintf(d, "\"%.*s\"", bstr16_len(i->data), bstr16_data(i->data));
|
||||
} else {
|
||||
d += sprintf(d, "\".x");
|
||||
d += cw_format_hex(d, bstr16_data(i->data), bstr16_len(i->data));
|
||||
d += sprintf(d, "\"");
|
||||
}
|
||||
return d-dst;
|
||||
}
|
||||
|
||||
|
||||
static int mbag_strstr(void *item,char *dst)
|
||||
{
|
||||
mbag_item_t *i= item;
|
||||
return sprintf(dst, "\"%s\"", i->data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
const struct mbag_typedef mbag_type_byte = {
|
||||
NULL
|
||||
"byte",NULL
|
||||
};
|
||||
|
||||
const struct mbag_typedef mbag_type_word = {
|
||||
NULL
|
||||
"word",NULL
|
||||
};
|
||||
|
||||
const struct mbag_typedef mbag_type_dword = {
|
||||
NULL
|
||||
"dword",NULL
|
||||
};
|
||||
|
||||
const struct mbag_typedef mbag_type_const_data = {
|
||||
NULL
|
||||
"data",NULL
|
||||
};
|
||||
|
||||
const struct mbag_typedef mbag_type_bstr = {
|
||||
free
|
||||
"bstr",free
|
||||
};
|
||||
|
||||
const struct mbag_typedef mbag_type_bstr16 = {
|
||||
free
|
||||
"bstr16",free,mbag_bstr16str
|
||||
};
|
||||
|
||||
const struct mbag_typedef mbag_type_str = {
|
||||
free
|
||||
"str",free,mbag_strstr
|
||||
};
|
||||
|
||||
const struct mbag_typedef mbag_type_vendorstr = {
|
||||
free
|
||||
"vendorstr",free
|
||||
};
|
||||
|
||||
|
||||
@ -41,7 +72,7 @@ void free_avltree(void*t){
|
||||
|
||||
}
|
||||
const struct mbag_typedef mbag_type_avltree = {
|
||||
free_avltree
|
||||
"mavl",free_avltree
|
||||
};
|
||||
|
||||
|
||||
@ -55,7 +86,7 @@ static void mbag_type_mbag_del(void *i)
|
||||
}
|
||||
|
||||
const struct mbag_typedef mbag_type_mbag = {
|
||||
mbag_type_mbag_del
|
||||
"mbag",mbag_type_mbag_del
|
||||
};
|
||||
|
||||
|
||||
|
@ -34,7 +34,9 @@
|
||||
struct mbag_item;
|
||||
|
||||
struct mbag_typedef{
|
||||
const char *name;
|
||||
void (*del)(void*);
|
||||
int (*to_str)(void*,char *dst);
|
||||
|
||||
};
|
||||
typedef const struct mbag_typedef * mbagtype_t;
|
||||
|
Loading…
Reference in New Issue
Block a user