|
From: | L Zee |
Subject: | RE: GNUStep parsing OSX binary plist changed? |
Date: | Fri, 29 Jan 2010 18:28:13 +0000 |
Hi, Thanks for responding and clarifying it is printing the class of the object. I am expecting the object to be a NSDicrionary object. I have attached the History.plist file, and additional info on the the results using this file. The below code on Linux w/GNUStep (native Ubuntu 9.04) $>md5sum ~/Desktop/History.plist 656ce0c8705d8c38b95a22356b6cfd9a $> ./test ~/Desktop/History.plist 2010-01-29 13:15:26.594 safari_hist[3276] WebHistoryFileVersion 2010-01-29 13:15:26.604 safari_hist[3276] Detected format as GSCBufferString Aborted The same code (below) on OSX with the same History.plist file maccy$ md5 ~Desktop/History.plist MD5 (History.plist) = 656ce0c8705d8c38b95a22356b6cfd9a maccy$ ./test ~/Desktop/History.plist 2010-01-29 13:17:30.132 test[1019] { WebHistoryDates = ( { "" = "http://www.apple.com/startpage/"; D = (2); lastVisitedDate = "286477969.8"; title = "Apple - Start"; visitCount = 2; } ); WebHistoryFileVersion = 1; } 2010-01-29 13:17:30.133 test[1019] Detected format as NSCFDictionary 2010-01-29 13:17:30.133 test[1019] 1 Thanks for your help. > Date: Thu, 28 Jan 2010 16:26:57 +0100 > From: fredkiefer@gmx.de > To: casasearch@hotmail.com > CC: discuss-gnustep@gnu.org > Subject: Re: GNUStep parsing OSX binary plist changed? > > Your code is not printing the actual format of the plist, rather it > prints the class of the extracted object. And if this is a string in > GNUstep then the call to objectForKey: is bound to fail. > > Most likely the plist format used by Safari has changed or your aren't > looking at the same file in both cases. > > This could be easily investigated if you mail the plist in question (or > even better a very simple one that reproduces the problem). I tried to > find the History.plist on my Mac, but failed. The only thing I found was > a History directory for Safari with plenty of files in it. All of them > looked like normal plists to me. > > Fred > > Am 28.01.2010 02:30, schrieb L Zee: > > I recently discovered that a one of my GNUStep programs that parses > > Safari History.plist files can't parse the files in new versions of > > safari. > > > > As a test ,when I compile and run the following code on OSX using a > > plist file, it tells me the "plist class" of the plist is "Detected > > format as NSCFDictionary". > > > > When I run the same code compiled on GNUStep that's bundled with > > ubuntu 9.04, using the same plist file, it tells me the "plist class" > > is "Detected format as GSCBufferString" and the program aborts. > > > > Any ideas on how I can continue to parse these files using GNUstep? > > > > Thanks > > > > ---------------------------------- > > > > > > #include <Foundation/Foundation.h> > > > > // MAIN int main (int argc, const char * argv[]) { > > > > // Defs. NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] > > init]; NSData *plistData; NSString *error; NSPropertyListFormat > > format; id plist; id dict_val; > > > > > > plistData = [NSData dataWithContentsOfFile: [NSString > > stringWithCString: argv[1]]]; > > > > plist = [NSPropertyListSerialization propertyListFromData:plistData > > mutabilityOption:NSPropertyListMutableContainers format:&format > > errorDescription:&error]; > > > > NSLog(@"%@",plist); NSLog(@"Detected format as %@", [plist > > class],plist) ; > > > > > > dict_val = [plist objectForKey: @"WebHistoryDates"]; > > > > NSLog(@"%@",dict_val); > > > > > > [pool release]; return 0; } > Hotmail: Powerful Free email with security by Microsoft. Get it now. |
History.plist
Description: Binary data
[Prev in Thread] | Current Thread | [Next in Thread] |