diff options
author | Jonathan Beck | 2008-11-25 19:14:27 +0100 |
---|---|---|
committer | Jonathan Beck | 2008-11-25 19:14:27 +0100 |
commit | aed2c025f6e47dc769675e564cc574adc496a88a (patch) | |
tree | 6cb14e4c511dabc40fdf6c24714a2be48567f847 /dev/plutil.c | |
parent | 0bca81e7c8ce5ba53390271e5c7eaa7a5f281c91 (diff) | |
download | libimobiledevice-aed2c025f6e47dc769675e564cc574adc496a88a.tar.gz libimobiledevice-aed2c025f6e47dc769675e564cc574adc496a88a.tar.bz2 |
fix some warnings and indent
Diffstat (limited to 'dev/plutil.c')
-rw-r--r-- | dev/plutil.c | 219 |
1 files changed, 113 insertions, 106 deletions
diff --git a/dev/plutil.c b/dev/plutil.c index 1c7b140..d1c3ddd 100644 --- a/dev/plutil.c +++ b/dev/plutil.c @@ -5,171 +5,178 @@ #include "../src/plist.h" #include "plutil.h" +#include <glib.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> -int debug = 0; - -void print_nodes(bplist_node *root_node) { +void print_nodes(bplist_node * root_node) +{ // Yay, great. Let's print the list of nodes recursively... int i = 0; - if (!root_node) return; // or not, because the programmer's stupid. - + if (!root_node) + return; // or not, because the programmer's stupid. + switch (root_node->type) { - case BPLIST_DICT: - printf("Dictionary node.\nLength %i\n", root_node->length); - for (i = 0; i < (root_node->length * 2); i+=2) { - // HI! - printf("Key: "); - print_nodes(root_node->subnodes[i]); - printf("Value: "); - print_nodes(root_node->subnodes[i+1]); - } - printf("End dictionary node.\n\n"); - break; - - case BPLIST_ARRAY: - printf("Array node.\n"); - for (i = 0; i < root_node->length; i++) { - printf("\tElement %i: ", i); - print_nodes(root_node->subnodes[i]); - } - break; - - case BPLIST_INT: - if (root_node->length == sizeof(uint8_t)) { - printf("Integer: %i\n", root_node->intval8); - } else if (root_node->length == sizeof(uint16_t)) { - printf("Integer: %i\n", root_node->intval16); - } else if (root_node->length == sizeof(uint32_t)) { - printf("Integer: %i\n", root_node->intval32); - } - break; - - case BPLIST_STRING: - printf("String: "); - fwrite(root_node->strval, sizeof(char), root_node->length, stdout); - fflush(stdout); - printf("\n"); - break; - - case BPLIST_DATA: - printf("Data: "); - char* data = g_base64_encode(root_node->strval,root_node->length); - fwrite(format_string(data, 60, 0), sizeof(char), strlen(data), stdout); - fflush(stdout); - printf("\n"); - break; - - case BPLIST_UNICODE: - printf("Unicode data, may appear crappy: "); - fwrite(root_node->unicodeval, sizeof(wchar_t), root_node->length, stdout); - fflush(stdout); - printf("\n"); - break; - - case BPLIST_TRUE: - printf("True.\n"); - break; - - case BPLIST_FALSE: - printf("False.\n"); - break; - - case BPLIST_REAL: - case BPLIST_DATE: - printf("Real(?): %f\n", root_node->realval); - break; - - default: - printf("oops\nType set to %x and length is %i\n", root_node->type, root_node->length); - break; + case BPLIST_DICT: + printf("Dictionary node.\nLength %lu\n", (long unsigned int) root_node->length); + for (i = 0; i < (root_node->length * 2); i += 2) { + // HI! + printf("Key: "); + print_nodes(root_node->subnodes[i]); + printf("Value: "); + print_nodes(root_node->subnodes[i + 1]); + } + printf("End dictionary node.\n\n"); + break; + + case BPLIST_ARRAY: + printf("Array node.\n"); + for (i = 0; i < root_node->length; i++) { + printf("\tElement %i: ", i); + print_nodes(root_node->subnodes[i]); + } + break; + + case BPLIST_INT: + if (root_node->length == sizeof(uint8_t)) { + printf("Integer: %i\n", root_node->intval8); + } else if (root_node->length == sizeof(uint16_t)) { + printf("Integer: %i\n", root_node->intval16); + } else if (root_node->length == sizeof(uint32_t)) { + printf("Integer: %i\n", root_node->intval32); + } + break; + + case BPLIST_STRING: + printf("String: "); + fwrite(root_node->strval, sizeof(char), root_node->length, stdout); + fflush(stdout); + printf("\n"); + break; + + case BPLIST_DATA: + printf("Data: "); + char *data = g_base64_encode(root_node->strval, root_node->length); + fwrite(format_string(data, 60, 0), sizeof(char), strlen(data), stdout); + fflush(stdout); + printf("\n"); + break; + + case BPLIST_UNICODE: + printf("Unicode data, may appear crappy: "); + fwrite(root_node->unicodeval, sizeof(wchar_t), root_node->length, stdout); + fflush(stdout); + printf("\n"); + break; + + case BPLIST_TRUE: + printf("True.\n"); + break; + + case BPLIST_FALSE: + printf("False.\n"); + break; + + case BPLIST_REAL: + case BPLIST_DATE: + printf("Real(?): %f\n", root_node->realval); + break; + + default: + printf("oops\nType set to %x and length is %lu\n", root_node->type, (long unsigned int) root_node->length); + break; } } -int main(int argc, char *argv[]) { - struct stat *filestats = (struct stat *)malloc(sizeof(struct stat)); +int main(int argc, char *argv[]) +{ + struct stat *filestats = (struct stat *) malloc(sizeof(struct stat)); uint32_t position = 0; Options *options = parse_arguments(argc, argv); int argh = 0; - + printf("plistutil version 0.2 written by FxChiP\n"); - + if (!options) { print_usage(); return 0; } - debug = options->debug; - + iphone_set_debug(options->debug); + FILE *bplist = fopen(options->in_file, "r"); - + stat(options->in_file, filestats); printf("here?\n"); - char *bplist_entire = (char*)malloc(sizeof(char) * (filestats->st_size + 1)); + char *bplist_entire = (char *) malloc(sizeof(char) * (filestats->st_size + 1)); //argh = fgets(bplist_entire, filestats->st_size, bplist); argh = fread(bplist_entire, sizeof(char), filestats->st_size, bplist); printf("read %i bytes\n", argh); fclose(bplist); printf("or here?\n"); // bplist_entire contains our stuff - bplist_node *root_node; - root_node = parse_nodes(bplist_entire, filestats->st_size, &position); - printf("plutil debug mode\n\n"); - printf("file size %i\n\n", filestats->st_size); - if (!root_node) { - printf("Invalid binary plist (or some other error occurred.)\n"); - return 0; + bplist_node *root_node; + root_node = parse_nodes(bplist_entire, filestats->st_size, &position); + printf("plutil debug mode\n\n"); + printf("file size %i\n\n", (int) filestats->st_size); + if (!root_node) { + printf("Invalid binary plist (or some other error occurred.)\n"); + return 0; } - print_nodes(root_node); - return 0; - } + print_nodes(root_node); + return 0; +} -Options *parse_arguments(int argc, char *argv[]) { +Options *parse_arguments(int argc, char *argv[]) +{ int i = 0; - - Options *options = (Options*)malloc(sizeof(Options)); + + Options *options = (Options *) malloc(sizeof(Options)); memset(options, 0, sizeof(Options)); - + for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "--infile") || !strcmp(argv[i], "-i")) { - if ((i+1) == argc) { + if ((i + 1) == argc) { free(options); return NULL; } - options->in_file = argv[i+1]; + options->in_file = argv[i + 1]; i++; continue; } - + if (!strcmp(argv[i], "--outfile") || !strcmp(argv[i], "-o")) { - if ((i+1) == argc) { + if ((i + 1) == argc) { free(options); return NULL; } - options->out_file = argv[i+1]; + options->out_file = argv[i + 1]; i++; continue; } - + if (!strcmp(argv[i], "--debug") || !strcmp(argv[i], "-d") || !strcmp(argv[i], "-v")) { options->debug = 1; } - + if (!strcmp(argv[i], "--help") || !strcmp(argv[i], "-h")) { free(options); return NULL; } } - - if (!options->in_file /*|| !options->out_file*/) { + + if (!options->in_file /*|| !options->out_file */ ) { free(options); return NULL; } - + return options; } -void print_usage() { +void print_usage() +{ printf("Usage: plistutil -i|--infile in_file.plist -o|--outfile out_file.plist [--debug]\n"); printf("\n"); printf("\t-i or --infile: The file to read in.\n"); |