+/* key/value archiving */
+
+- (id)initWithKeyValueUnarchiver:(EOKeyValueUnarchiver *)_unarchiver {
+ if ((self = [super init]) != nil) {
+ NSString *s;
+
+ self->key = [[_unarchiver decodeObjectForKey:@"key"] copy];
+
+ if ((s = [_unarchiver decodeObjectForKey:@"selector"]) != nil)
+ self->selector = NSSelectorFromString(s);
+ else if ((s = [_unarchiver decodeObjectForKey:@"selectorName"]) != nil) {
+ if (![s hasSuffix:@":"]) s = [s stringByAppendingString:@":"];
+ self->selector = NSSelectorFromString(s);
+ }
+ }
+ return self;
+}
+- (void)encodeWithKeyValueArchiver:(EOKeyValueArchiver *)_archiver {
+ [_archiver encodeObject:[self key] forKey:@"key"];
+ [_archiver encodeObject:NSStringFromSelector([self selector])
+ forKey:@"selectorName"];
+}
+