Skip to content

Commit

Permalink
Remove filler variations
Browse files Browse the repository at this point in the history
  • Loading branch information
youknowone committed Sep 13, 2018
1 parent 7293a5b commit 7e7d318
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 70 deletions.
71 changes: 2 additions & 69 deletions OSX/HangulComposer.m
Expand Up @@ -18,15 +18,6 @@

@class CIMInputController;

@interface NSString (HangulCharacterCombinationMode)

+ (NSString *)stringByHidingFillerFollowersWithUCSString:(const HGUCSChar *)UCSString;
+ (NSString *)stringByHidingJungseongFillerFollowersWithUCSString:(const HGUCSChar *)UCSString;
+ (NSString *)stringByRemovingNonJungseongFillerWithUCSString:(const HGUCSChar *)UCSString;

@end


@implementation HanjaComposer
@synthesize mode=_mode;

Expand Down Expand Up @@ -299,29 +290,14 @@ - (CIMInputTextProcessResult)inputController:(CIMInputController *)controller in

@implementation HangulComposerCombination

static NSString *HangulCombinationModefillers[HangulCharacterCombinationModeCount] = {
@"stringByRemovingFillerWithUCSString:",
@"stringWithUCSString:",
@"stringByRemovingNonJungseongFillerWithUCSString:",
@"stringByHidingFillerFollowersWithUCSString:",
@"stringByHidingJungseongFillerFollowersWithUCSString:",
};

/*!
@brief 설정에 따라 조합 완료할 문자 최종처리
*/
+ (NSString *)commitStringByCombinationModeWithUCSString:(const HGUCSChar *)UCSString {
NSInteger index = [GureumConfiguration shared].hangulCombinationModeCommiting;
dassert(0 <= index);
dassert(index < HangulCharacterCombinationModeCount);
NSString *name = HangulCombinationModefillers[index];
dassert(name);
dassert(name.length);
SEL selector = NSSelectorFromString(name);
if (selector == nil) {
selector = @selector(stringByRemovingFillerWithUCSString:);
}
return [NSString performSelector:selector withObject:(__bridge id)UCSString];
return [NSString stringByRemovingFillerWithUCSString:UCSString];
}

/*!
Expand All @@ -331,50 +307,7 @@ + (NSString *)composedStringByCombinationModeWithUCSString:(const HGUCSChar *)UC
NSInteger index = [GureumConfiguration shared].hangulCombinationModeComposing;
dassert(0 <= index);
dassert(index < HangulCharacterCombinationModeCount);
NSString *name = HangulCombinationModefillers[index];
dassert(name);
dassert(name.length > 0);
SEL selector = NSSelectorFromString(name);
if (selector == nil) {
selector = @selector(stringByRemovingFillerWithUCSString:);
}
return [NSString performSelector:selector withObject:(id)UCSString];
}

@end

@implementation NSString (HangulCharacterCombinationMode)

+ (NSString *)stringByHidingFillerFollowersWithUCSString:(const HGUCSChar *)UCSString {
// 채움문자로 조합 중 판별
if (!HGCharacterIsChoseong(UCSString[0])) {
return [NSString stringWithUCSString:UCSString];
}

if (UCSString[0] == 0x115f) return @"";
/* if (UCSString[1] == 0x1160) */
return [NSString stringWithUCSString:UCSString length:1];
}

+ (NSString *)stringByHidingJungseongFillerFollowersWithUCSString:(const HGUCSChar *)UCSString {
// 채움문자로 조합 중 판별
if (!HGCharacterIsChoseong(UCSString[0])) {
return [NSString stringWithUCSString:UCSString];
}

if (UCSString[0] == 0x115f) {
return [NSString stringWithUCSString:UCSString + 1];
}
/* if (UCSString[1] == 0x1160) */
return [NSString stringWithUCSString:UCSString length:1];
}

+ (NSString *)stringByRemovingNonJungseongFillerWithUCSString:(const HGUCSChar *)UCSString {
// 초성이 채움문자일 때를 제외하면 항상
if (UCSString[0] == 0x115f) {
return [NSString stringWithUCSString:UCSString + 1];
}
return [NSString stringWithUCSString:UCSString];
return [NSString stringByRemovingFillerWithUCSString:UCSString];
}

@end
2 changes: 1 addition & 1 deletion OSX/HangulComposer.swift
Expand Up @@ -143,7 +143,7 @@ extension NSString {
return NSString(ucsString: ucsString + 1)
}
/* if (UCSString[1] == 0x1160) */
var fill: NSMutableString = NSMutableString(ucsString: ucsString, length: 1)
let fill: NSMutableString = NSMutableString(ucsString: ucsString, length: 1)
fill.append(NSString(ucsString: ucsString + 2, length: 1) as String)
return fill
}
Expand Down

0 comments on commit 7e7d318

Please sign in to comment.