From f6b1f9e76a3f0a034941da8d1edeac1c5d68acc3 Mon Sep 17 00:00:00 2001 From: FredKiefer Date: Wed, 28 Jan 2004 23:13:55 +0000 Subject: [PATCH] Corrected keyed decoding. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@18496 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 5 +++++ Source/NSString.m | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 88965d7df..df16b1548 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-01-28 Fred Kiefer + + * Source/NSString.m: + Corrected keyed decoding and implemented keyed encoding. + 2004-01-28 Richard Frith-Macdonald * Source/NSKeyedUnrchiver.m: Store objects in map while they are diff --git a/Source/NSString.m b/Source/NSString.m index 9bd6f5b99..e09d7f803 100644 --- a/Source/NSString.m +++ b/Source/NSString.m @@ -66,6 +66,8 @@ #include "Foundation/NSLock.h" #include "Foundation/NSUserDefaults.h" #include "Foundation/NSDebug.h" +// For private method _decodePropertyListForKey: +#include "Foundation/NSKeyedArchiver.h" #include "GNUstepBase/GSMime.h" #include "GSFormat.h" #include @@ -3861,10 +3863,7 @@ handle_printf_atsign (FILE *stream, { if ([aCoder allowsKeyedCoding]) { -// FIXME -[NSException raise: NSInvalidArgumentException - format: @"%@ doesn't know how to encode with keyed coder", - NSStringFromClass([self class])]; + [(NSKeyedArchiver*)aCoder _encodePropertyList: self forKey: @"NS.string"]; } else { @@ -3892,7 +3891,8 @@ handle_printf_atsign (FILE *stream, { if ([aCoder allowsKeyedCoding]) { - NSString *string = [aCoder decodeObjectForKey: @"NS.string"]; + NSString *string = (NSString*)[(NSKeyedUnarchiver*)aCoder + _decodePropertyListForKey: @"NS.string"]; self = [self initWithString: string]; }