summaryrefslogtreecommitdiffstats
path: root/src/plist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plist.c')
-rw-r--r--src/plist.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/plist.c b/src/plist.c
index 3e69e2a..1ff17fc 100644
--- a/src/plist.c
+++ b/src/plist.c
@@ -58,6 +58,21 @@ PLIST_API int plist_is_binary(const char *plist_data, uint32_t length)
return (memcmp(plist_data, "bplist00", 8) == 0);
}
+
+PLIST_API void plist_from_memory(const char *plist_data, uint32_t length, plist_t * plist)
+{
+ if (length < 8) {
+ *plist = NULL;
+ return;
+ }
+
+ if (plist_is_binary(plist_data, length)) {
+ plist_from_bin(plist_data, length, plist);
+ } else {
+ plist_from_xml(plist_data, length, plist);
+ }
+}
+
plist_t plist_new_node(plist_data_t data)
{
return (plist_t) node_create(NULL, data);