diff options
author | Jonathan Beck | 2009-11-10 23:31:49 +0100 |
---|---|---|
committer | Matt Colyer | 2009-11-11 07:33:08 -0800 |
commit | eaf80002c6e82c6b7a376bb61c9884ec3cf750b4 (patch) | |
tree | fc273d59ad7e5db3db2aba1006bebc6d8e0ac28d /tools | |
parent | fdf94756f8f6a9fc9d218725f429d64fd91d7679 (diff) | |
download | libimobiledevice-eaf80002c6e82c6b7a376bb61c9884ec3cf750b4.tar.gz libimobiledevice-eaf80002c6e82c6b7a376bb61c9884ec3cf750b4.tar.bz2 |
Finish migration to latest plist API.
[#77 state:resolved]
Signed-off-by: Matt Colyer <matt@colyer.name>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/iphoneinfo.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/tools/iphoneinfo.c b/tools/iphoneinfo.c index 4d6da31..e0d7693 100644 --- a/tools/iphoneinfo.c +++ b/tools/iphoneinfo.c @@ -51,8 +51,8 @@ static const char *domains[] = { int is_domain_known(char *domain); void print_usage(int argc, char **argv); -void plist_node_to_string(plist_t *node); -void plist_children_to_string(plist_t *node); +void plist_node_to_string(plist_t node); +void plist_children_to_string(plist_t node); int main(int argc, char *argv[]) { @@ -145,7 +145,7 @@ int main(int argc, char *argv[]) if(lockdownd_get_value(client, domain, key, &node) == LOCKDOWN_E_SUCCESS) { if (plist_get_node_type(node) == PLIST_DICT) { - if (plist_get_first_child(node)) + if (plist_dict_get_size(node)) { switch (format) { case FORMAT_XML: @@ -208,7 +208,7 @@ void print_usage(int argc, char **argv) printf("\n"); } -void plist_node_to_string(plist_t *node) +void plist_node_to_string(plist_t node) { char *s = NULL; double d; @@ -267,15 +267,26 @@ void plist_node_to_string(plist_t *node) } } -void plist_children_to_string(plist_t *node) +void plist_children_to_string(plist_t node) { /* iterate over key/value pairs */ - for ( - node = plist_get_first_child(node); - node != NULL; - node = plist_get_next_sibling(node) - ) { - plist_node_to_string(node); + plist_dict_iter it = NULL; + + char* key = NULL; + plist_t subnode = NULL; + plist_dict_new_iter(node, &it); + plist_dict_next_item(node, it, &key, &subnode); + while (subnode) + { + subnode = NULL; + + printf("%s: ", key); + free(key); + key = NULL; + plist_node_to_string(subnode); + + plist_dict_next_item(node, it, &key, &subnode); } + free(it); } |