diff options
Diffstat (limited to 'plutil')
| -rw-r--r-- | plutil/plutil.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/plutil/plutil.c b/plutil/plutil.c index 0431dc6..37d83df 100644 --- a/plutil/plutil.c +++ b/plutil/plutil.c @@ -30,6 +30,11 @@  int main(int argc, char *argv[])  { +	FILE *iplist = NULL; +	plist_t root_node = NULL; +	char *plist_out = NULL; +	int size = 0; +	char *plist_entire = NULL;  	struct stat *filestats = (struct stat *) malloc(sizeof(struct stat));  	Options *options = parse_arguments(argc, argv); @@ -38,19 +43,17 @@ int main(int argc, char *argv[])  		return 0;  	}  	//read input file -	FILE *iplist = fopen(options->in_file, "r"); +	iplist = fopen(options->in_file, "rb");  	if (!iplist)  		return 1;  	stat(options->in_file, filestats); -	char *plist_entire = (char *) malloc(sizeof(char) * (filestats->st_size + 1)); +	plist_entire = (char *) malloc(sizeof(char) * (filestats->st_size + 1));  	fread(plist_entire, sizeof(char), filestats->st_size, iplist);  	fclose(iplist);  	//convert one format to another -	plist_t root_node = NULL; -	char *plist_out = NULL; -	int size = 0; +  	if (memcmp(plist_entire, "bplist00", 8) == 0) {  		plist_from_bin(plist_entire, filestats->st_size, &root_node);  | 
