]> err.no Git - sope/commitdiff
improved decoding of bools
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sat, 6 Aug 2005 17:53:52 +0000 (17:53 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sat, 6 Aug 2005 17:53:52 +0000 (17:53 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@979 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-core/EOControl/ChangeLog
sope-core/EOControl/EOKeyValueArchiver.m
sope-core/EOControl/Version

index f6e8f38103be328d5f11b219410d8fa534ad76c1..7b65e8d8c08ddf80a76e2280db44158afbcd0d9f 100644 (file)
@@ -1,3 +1,7 @@
+2005-08-06  Helge Hess  <helge.hess@opengroupware.org>
+
+       * EOKeyValueArchiver.m: improved decoding of bools (v4.5.59)
+
 2005-08-05  Helge Hess  <helge.hess@opengroupware.org>
 
        * v4.5.58
index 9b8b2fe5e9ee0eedead3929a9070ab8cf2632fcf..8649be35b55695ec3360a86821f101d542cf014a 100644 (file)
@@ -296,7 +296,23 @@ static BOOL isPListObject(id _obj) {
 }
 
 - (BOOL)decodeBoolForKey:(NSString *)_key {
-  return [[self->plist objectForKey:_key] boolValue];
+  id v;
+  
+  if ((v = [self->plist objectForKey:_key]) == nil)
+    return NO;
+  
+  if ([v isKindOfClass:[NSString class]]) {
+    unsigned l = [v length];
+    
+    if (l == 4 && [v isEqualToString:@"true"])   return YES;
+    if (l == 5 && [v isEqualToString:@"false"])  return NO;
+    if (l == 3 && [v isEqualToString:@"YES"])    return YES;
+    if (l == 2 && [v isEqualToString:@"NO"])     return NO;
+    if (l == 1 && [v characterAtIndex:0] == '1') return YES;
+    if (l == 1 && [v characterAtIndex:0] == '0') return NO;
+  }
+  
+  return [v boolValue];
 }
 - (int)decodeIntForKey:(NSString *)_key {
   return [[self->plist objectForKey:_key] intValue];
index 31494853fc6418695cfabaf78b7d27ee87f6e96d..de3d3ecd1a652cb6df956911af35bddf3a29e7d0 100644 (file)
@@ -1,3 +1,3 @@
 # version file
 
-SUBMINOR_VERSION:=58
+SUBMINOR_VERSION:=59