[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Localized string compare

From: Eric Wasylishen
Subject: Re: Localized string compare
Date: Fri, 2 Mar 2012 15:08:00 -0700

Hi Stef,
Sorry, my bad, I didn't think of checking corebase first; in any case we should be able to share code. I implemented anchored forward/backward search, and just added a simple test suite in base/Tests/base/NSString/locale.m.


On 2012-03-02, at 7:02 AM, Stefan Bidi wrote:

I just wanted to mention that this has been implemented in corebase for some time.  Should be able to use the code there if needed.  I still need to really clean it up as I was kind of in a rush at the time, but the concept is there.  That should go for any of the localized/normalization/etc string stuff and anything else requiring ICU support.

On Fri, Mar 2, 2012 at 1:03 AM, Eric Wasylishen <address@hidden> wrote:
Hey, I just committed a first attempt at implementing this with ICU (compare:options:range:locale:, and I also did rangeOfString:options:range:locale: since it was similar.)

It needs more careful testing, but this little toy example works:

       NSLocale *german = [[NSLocale alloc] initWithLocaleIdentifier: @"de_DE"];

       int i = (int)[@"ß" compare: @"ss" options: NSCaseInsensitiveSearch range: NSMakeRange(0, 1) locale: german];
       NSLog(@"s-set vs 'ss': %d", i); // returns 0 - the strings are equal

       NSRange r = [@"ßab" rangeOfString: @"sS" options: NSCaseInsensitiveSearch range: NSMakeRange(0, 3)
                                                          locale: german];

       NSLog(@"range: %@", NSStringFromRange(r)); // returns {0, 1}


On 2012-03-01, at 2:50 PM, David Chisnall wrote:

> On OS X and FreeBSD trunk, we have strcoll_l which can do this.  I think it's in POSIX2008, so it should appear elsewhere soon.  Otherwise, yes, ICU is the way to go.
> David
> On 1 Mar 2012, at 21:47, Jens Alfke wrote:
>> Looks like localized string comparison (-[NSString localizedCompare:], et al) isn’t implemented — NSString.m has various reminder comments like “Should implement full POSIX.2 collate” and "FIXME: This does only a normal compare, ignoring locale”.
>> Unfortunately Unicode collation is kind of important for my app, as its data interchange format relies on a single cross-platform sort order for strings.
>> How hard would it be to implement this? Does it mean calling into the scary innards of ICU, or is there some higher level collation API available?
>> —Jens_______________________________________________
>> Discuss-gnustep mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
> -- Sent from my PDP-11
> _______________________________________________
> Discuss-gnustep mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Discuss-gnustep mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]