Hello Georg, Am Freitag, den 17.07.2009, 10:50 +0800 schrieb Georg Fleischmann: > here is a patch for Base to make GDL2 on Cocoa work with boolean > values from EOModels. > The boolean values in my EOModel files are stored as "Y" only, not a > complete "Yes" ( allowsNull = Y; ). > This ("Y") works fine on a complete GNUstep system, but fails with > the Compatibility code that is only allowing a complete "YES" (or > "TRUE"). > > The attached patch makes this work for me with Cocoa. > I tried to make it similar to the latest boolValue method in > GSString, testing for "123456789yYtT". > > Best wishes, > Georg > > PS: I am still using Base-Version 1.15.0 on Apple, because the > current base-versions doesn't seem to compile any more with Mac OS > 10.4.11. Anyway, [GSCompatibility -boolValue] didn't change since then.
I believe this is not correct. -boolValue is documented in Cocoa to do pretty much what the compatibility implementation does. So I believe the "correct" fix would be to simply remove our compatibility category. I could commit that patch right now, but I had second thoughts that the category would still be useful for older Cocoa/OS X versions. But even then, it should be synchronized with current implementation of -base. It would be great if someone who understands the macro magic wrt. OS X versions could compile the category conditionally and sync the implementation. Cheers, David > > *** Source/Additions/GSCompatibility.m.old Thu Apr 12 22:27:47 2007 > --- Source/Additions/GSCompatibility.m Fri Jul 17 10:29:29 2009 > *************** > *** 390,404 **** > */ > - (BOOL) boolValue > { > ! if ([self caseInsensitiveCompare: @"YES"] == NSOrderedSame) > { > ! return YES; > ! } > ! if ([self caseInsensitiveCompare: @"true"] == NSOrderedSame) > ! { > ! return YES; > } > ! return [self intValue] != 0 ? YES : NO; > } > > - (NSString*) substringFromRange:(NSRange)range > --- 390,405 ---- > */ > - (BOOL) boolValue > { > ! if ([self length]) > { > ! unichar uc = [self characterAtIndex:0]; > ! > ! if (uc <= 0x7F && strchr("123456789yYtT", (char)uc) != 0) > ! { > ! return YES; > ! } > } > ! return NO; > } > > - (NSString*) substringFromRange:(NSRange)range > > > > _______________________________________________ > Bug-gnustep mailing list > Bug-gnustep@gnu.org > http://lists.gnu.org/mailman/listinfo/bug-gnustep -- David Ayers Fellow of the Free Software Foundation Europe http://www.fsfe.org http://fellowship.fsfe.org _______________________________________________ Bug-gnustep mailing list Bug-gnustep@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gnustep