]> err.no Git - sope/blobdiff - sope-core/EOControl/EOSortOrdering.m
improved decoding of bools
[sope] / sope-core / EOControl / EOSortOrdering.m
index 93d2c01dab8bfc8a70955256f19674b98691d517..3dd7e00cc42d44ccf3542a8f4323ad3b5f22c498 100644 (file)
@@ -121,16 +121,23 @@ EOControl_DECLARE SEL EOCompareCaseInsensitiveDescending =
 
 - (id)initWithKeyValueUnarchiver:(EOKeyValueUnarchiver *)_unarchiver {
   if ((self = [super init]) != nil) {
+    NSString *s;
+    
     self->key = [[_unarchiver decodeObjectForKey:@"key"] copy];
-    self->selector = 
-      NSSelectorFromString([_unarchiver decodeObjectForKey:@"selector"]);
+    
+    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:@"selector"];
+             forKey:@"selectorName"];
 }
 
 /* description */