* Full author contact details are available in file CREDITS.
*/
-#import <Carbon/Carbon.h>
#import <Cocoa/Cocoa.h>
#import <AvailabilityMacros.h>
NSString * lang_ = toString(lang);
if ([NSSpellChecker instancesRespondToSelector:@selector(availableLanguages)]) {
NSArray * languages = [speller->checker availableLanguages];
-
+
for (NSString *element in languages) {
- if ([element isEqualToString:lang_]) {
+ if (0 == [element caseInsensitiveCompare:lang_]) {
result = element;
break;
} else if ([lang_ hasPrefix:element]) {
}
-SpellCheckResult checkAppleSpeller(AppleSpeller speller, const char * word, const char * lang)
+SpellCheckResult AppleSpeller_check(AppleSpeller speller, const char * word, const char * lang)
{
if (!speller->checker || !lang || !word)
return SPELL_CHECK_FAILED;
NSString * lang_ = toString(lang);
SpellCheckResult result = SPELL_CHECK_FAILED;
int start = 0;
+ int length = [word_ length];
[speller->misspelled release];
speller->misspelled = nil;
- while (result == SPELL_CHECK_FAILED) {
+ while (result == SPELL_CHECK_FAILED && start < length) {
NSRange match = [speller->checker
checkSpellingOfString:word_
startingAt:start
language:lang_
- wrap:NO
+ wrap:(BOOL)NO
inSpellDocumentWithTag:speller->doctag
wordCount:NULL];
result = SPELL_CHECK_LEARNED;
}
} else {
+#if defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1050)
+ NSUInteger capacity = [speller->misspelled count] + 1;
+#else
int capacity = [speller->misspelled count] + 1;
+#endif
NSMutableArray * misspelled = [NSMutableArray arrayWithCapacity:capacity];
[misspelled addObjectsFromArray:speller->misspelled];
[misspelled addObject:[NSValue valueWithRange:match]];
}
-void ignoreAppleSpeller(AppleSpeller speller, const char * word)
+void AppleSpeller_ignore(AppleSpeller speller, const char * word)
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString * word_ = toString(word);
}
-size_t makeSuggestionAppleSpeller(AppleSpeller speller, const char * word, const char * lang)
+size_t AppleSpeller_makeSuggestion(AppleSpeller speller, const char * word, const char * lang)
{
if (!speller->checker || !word || !lang)
return 0;
// Mac OS X 10.6 only
NSInteger slen = [word_ length];
NSRange range = { 0, slen };
-
- if ([NSSpellChecker instancesRespondToSelector:@selector(guessesForWordRange:)]) {
- result = [speller->checker guessesForWordRange:range
- inString:word_
- language:lang_
- inSpellDocumentWithTag:speller->doctag];
- } else {
- [speller->checker setLanguage:lang_];
- result = [speller->checker guessesForWord:word_];
- }
+
+ result = [speller->checker guessesForWordRange:range
+ inString:word_
+ language:lang_
+ inSpellDocumentWithTag:speller->doctag];
#else
[speller->checker setLanguage:lang_];
result = [speller->checker guessesForWord:word_];
}
-const char * getSuggestionAppleSpeller(AppleSpeller speller, size_t pos)
+const char * AppleSpeller_getSuggestion(AppleSpeller speller, size_t pos)
{
const char * result = 0;
if (pos < [speller->suggestions count]) {
}
-void learnAppleSpeller(AppleSpeller speller, const char * word)
+void AppleSpeller_learn(AppleSpeller speller, const char * word)
{
#if defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1050)
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
if ([NSSpellChecker instancesRespondToSelector:@selector(learnWord:)])
[speller->checker learnWord:word_];
-
+
[word_ release];
[pool release];
#endif
}
-void unlearnAppleSpeller(AppleSpeller speller, const char * word)
+void AppleSpeller_unlearn(AppleSpeller speller, const char * word)
{
#if defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1050)
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
if ([NSSpellChecker instancesRespondToSelector:@selector(unlearnWord:)])
[speller->checker unlearnWord:word_];
-
+
[word_ release];
[pool release];
#endif
}
-int numMisspelledWordsAppleSpeller(AppleSpeller speller)
+int AppleSpeller_numMisspelledWords(AppleSpeller speller)
{
return [speller->misspelled count];
}
-void misspelledWordAppleSpeller(AppleSpeller speller, int const position, int * start, int * length)
+void AppleSpeller_misspelledWord(AppleSpeller speller, int index, int * start, int * length)
{
- NSRange range = [[speller->misspelled objectAtIndex:position] rangeValue];
+#if defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1050)
+ NSRange range = [[speller->misspelled objectAtIndex:(NSUInteger)index] rangeValue];
+#else
+ NSRange range = [[speller->misspelled objectAtIndex:index] rangeValue];
+#endif
*start = range.location;
*length = range.length;
}
-int hasLanguageAppleSpeller(AppleSpeller speller, const char * lang)
+int AppleSpeller_hasLanguage(AppleSpeller speller, const char * lang)
{
+#if defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1050)
return toLanguage(speller, lang) != nil;
+#else
+ return true;
+#endif
}