Cog/Utils/NSString+FinderCompare.m
Christopher Snowhill 85c7073649 Reformat my own source code with clang-format
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-06 21:49:27 -08:00

43 lines
1.1 KiB
Objective-C

//
// FinderCompare.m
// Created by Pablo Gomez Basanta on 23/7/05.
// From: http://neop.gbtopia.com/?p=27
//
// Based on:
// http://developer.apple.com/qa/qa2004/qa1159.html
//
#import "NSString+FinderCompare.h"
@implementation NSString (FinderCompare)
- (NSComparisonResult)finderCompare:(NSString *)aString {
SInt32 compareResult;
CFIndex lhsLen = [self length];
;
CFIndex rhsLen = [aString length];
UniChar *lhsBuf = malloc(lhsLen * sizeof(UniChar));
UniChar *rhsBuf = malloc(rhsLen * sizeof(UniChar));
[self getCharacters:lhsBuf];
[aString getCharacters:rhsBuf];
(void)UCCompareTextDefault(kUCCollateComposeInsensitiveMask | kUCCollateWidthInsensitiveMask | kUCCollateCaseInsensitiveMask | kUCCollateDigitsOverrideMask | kUCCollateDigitsAsNumberMask | kUCCollatePunctuationSignificantMask, lhsBuf, lhsLen, rhsBuf, rhsLen, NULL, &compareResult);
free(lhsBuf);
free(rhsBuf);
return (NSComparisonResult)compareResult;
}
@end
@implementation NSURL (FinderCompare)
- (NSComparisonResult)finderCompare:(NSURL *)aURL {
return [[self absoluteString] finderCompare:[aURL absoluteString]];
}
@end