diff options
Diffstat (limited to 'src/plist.c')
| -rw-r--r-- | src/plist.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/plist.c b/src/plist.c index 61b2913..9f3c8f4 100644 --- a/src/plist.c +++ b/src/plist.c | |||
| @@ -49,17 +49,21 @@ extern void plist_xml_init(void); | |||
| 49 | extern void plist_xml_deinit(void); | 49 | extern void plist_xml_deinit(void); |
| 50 | extern void plist_bin_init(void); | 50 | extern void plist_bin_init(void); |
| 51 | extern void plist_bin_deinit(void); | 51 | extern void plist_bin_deinit(void); |
| 52 | extern void plist_json_init(void); | ||
| 53 | extern void plist_json_deinit(void); | ||
| 52 | 54 | ||
| 53 | static void internal_plist_init(void) | 55 | static void internal_plist_init(void) |
| 54 | { | 56 | { |
| 55 | plist_bin_init(); | 57 | plist_bin_init(); |
| 56 | plist_xml_init(); | 58 | plist_xml_init(); |
| 59 | plist_json_init(); | ||
| 57 | } | 60 | } |
| 58 | 61 | ||
| 59 | static void internal_plist_deinit(void) | 62 | static void internal_plist_deinit(void) |
| 60 | { | 63 | { |
| 61 | plist_bin_deinit(); | 64 | plist_bin_deinit(); |
| 62 | plist_xml_deinit(); | 65 | plist_xml_deinit(); |
| 66 | plist_json_deinit(); | ||
| 63 | } | 67 | } |
| 64 | 68 | ||
| 65 | #ifdef WIN32 | 69 | #ifdef WIN32 |
| @@ -195,6 +199,8 @@ PLIST_API plist_err_t plist_from_memory(const char *plist_data, uint32_t length, | |||
| 195 | } | 199 | } |
| 196 | if (plist_is_binary(plist_data, length)) { | 200 | if (plist_is_binary(plist_data, length)) { |
| 197 | res = plist_from_bin(plist_data, length, plist); | 201 | res = plist_from_bin(plist_data, length, plist); |
| 202 | } else if (plist_data[0] == '[' || plist_data[0] == '{') { | ||
| 203 | res = plist_from_json(plist_data, length, plist); | ||
| 198 | } else { | 204 | } else { |
| 199 | res = plist_from_xml(plist_data, length, plist); | 205 | res = plist_from_xml(plist_data, length, plist); |
| 200 | } | 206 | } |
