From 3dc130f3049e250b2d5c0b48af1995fda2fad3d4 Mon Sep 17 00:00:00 2001 From: Matt Colyer Date: Tue, 29 Jul 2008 10:13:37 -0700 Subject: Autotooled the project with very basic versioning support. --- plist.c | 91 ----------------------------------------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 plist.c (limited to 'plist.c') diff --git a/plist.c b/plist.c deleted file mode 100644 index cbd6302..0000000 --- a/plist.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * plist.c - * Builds plist XML structures. - * Written by FxChiP - */ - -#include -#include -#include -#include "plist.h" - -const char *plist_base = "\n\ -\n\ -\n\ -\0"; - -xmlDocPtr new_plist() { - char *plist = strdup(plist_base); - xmlDocPtr plist_xml = xmlReadMemory(plist, strlen(plist), NULL, NULL, 0); - if (!plist_xml) return NULL; - free(plist); - return plist_xml; -} - -void free_plist(xmlDocPtr plist) { - if (!plist) return; - xmlFreeDoc(plist); -} - -xmlNode *add_child_to_plist(xmlDocPtr plist, const char *name, const char *content, xmlNode *to_node, int depth) { - if (!plist) return NULL; - int i = 0; - xmlNode *child; - if (!to_node) to_node = xmlDocGetRootElement(plist); - for (i = 0; i < depth; i++) { - xmlNodeAddContent(to_node, "\t"); - } - child = xmlNewChild(to_node, NULL, name, content); - xmlNodeAddContent(to_node, "\n"); - return child; -} - -xmlNode *add_key_str_dict_element(xmlDocPtr plist, xmlNode *dict, const char *key, const char *value, int depth) { - xmlNode *keyPtr; - keyPtr = add_child_to_plist(plist, "key", key, dict, depth); - add_child_to_plist(plist, "string", value, dict, depth); - return keyPtr; -} - -char **read_dict_element_strings(xmlNode *dict) { - // reads a set of keys and strings into an array where each even number is a key and odd numbers are values. - // if the odd number is \0, that's the end of the list. - char **return_me = NULL, **old = NULL; - int current_length = 0; - int current_pos = 0; - xmlNode *dict_walker; - - for (dict_walker = dict->children; dict_walker; dict_walker = dict_walker->next) { - if (!xmlStrcmp(dict_walker->name, "key")) { - current_length += 2; - old = return_me; - return_me = realloc(return_me, sizeof(char*) * current_length); - if (!return_me) { - free(old); - return NULL; - } - return_me[current_pos++] = xmlNodeGetContent(dict_walker); - return_me[current_pos++] = xmlNodeGetContent(dict_walker->next->next); - } - } - - // one last thing... - old = return_me; - return_me = realloc(return_me, sizeof(char*) * current_length+1); - return_me[current_pos] = strdup(""); - - return return_me; -} - -void free_dictionary(char **dictionary) { - if (!dictionary) return; - int i = 0; - - for (i = 0; strcmp(dictionary[i], ""); i++) { - free(dictionary[i]); - } - - free(dictionary[i]); - free(dictionary); -} - -- cgit v1.1-32-gdbae