diff options
| author | 2014-05-06 11:56:29 +0200 | |
|---|---|---|
| committer | 2014-05-06 11:56:29 +0200 | |
| commit | b27e6ffe7233123fc99a26723443705595e925de (patch) | |
| tree | f7c11e64cba9479042965f8bd3419cf706d73100 | |
| parent | c24463ee5f4ebd3cabb279c2a37e35b1777f4dd9 (diff) | |
| download | usbmuxd-b27e6ffe7233123fc99a26723443705595e925de.tar.gz usbmuxd-b27e6ffe7233123fc99a26723443705595e925de.tar.bz2 | |
utils: Add missing plist_read_from_filename() helper
| -rw-r--r-- | src/utils.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c index 4218758..af8fc78 100644 --- a/src/utils.c +++ b/src/utils.c | |||
| @@ -252,6 +252,31 @@ void buffer_write_to_filename(const char *filename, const char *buffer, uint64_t | |||
| 252 | } | 252 | } |
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | int plist_read_from_filename(plist_t *plist, const char *filename) | ||
| 256 | { | ||
| 257 | char *buffer = NULL; | ||
| 258 | uint64_t length; | ||
| 259 | |||
| 260 | if (!filename) | ||
| 261 | return 0; | ||
| 262 | |||
| 263 | buffer_read_from_filename(filename, &buffer, &length); | ||
| 264 | |||
| 265 | if (!buffer) { | ||
| 266 | return 0; | ||
| 267 | } | ||
| 268 | |||
| 269 | if ((length > 8) && (memcmp(buffer, "bplist00", 8) == 0)) { | ||
| 270 | plist_from_bin(buffer, length, plist); | ||
| 271 | } else { | ||
| 272 | plist_from_xml(buffer, length, plist); | ||
| 273 | } | ||
| 274 | |||
| 275 | free(buffer); | ||
| 276 | |||
| 277 | return 1; | ||
| 278 | } | ||
| 279 | |||
| 255 | int plist_write_to_filename(plist_t plist, const char *filename, enum plist_format_t format) | 280 | int plist_write_to_filename(plist_t plist, const char *filename, enum plist_format_t format) |
| 256 | { | 281 | { |
| 257 | char *buffer = NULL; | 282 | char *buffer = NULL; |
