diff options
author | Choe Hwanjin <choe.hwanjin@gmail.com> | 2009-10-17 22:42:45 +0900 |
---|---|---|
committer | Choe Hwanjin <choe.hwanjin@gmail.com> | 2009-10-17 22:42:45 +0900 |
commit | bcdfb83212580a0ccad8c5867653a0774c9e0aa7 (patch) | |
tree | 2c1e03dd408f5fec8492e607b83364cd8ec606ed | |
parent | eb36c6692a974004d911325b8d744465caee6974 (diff) | |
download | libhangul-bcdfb83212580a0ccad8c5867653a0774c9e0aa7.tar.gz |
Unicode 5.2 지원
* 확장된 자모 영역을 적용하여 ctype 관련 함수를 업데이트함
0x1100의 추가된 영역과 Jamo Extended A, Jamo Extended B 추가
코드값이 자모, 초중성 코드인지 확인하는 함수들의 구현을
수정하여 Unicode 5.2에서 추가된 영역도 인식하도록 함
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@201 8f00fcd2-89fc-0310-932e-b01be5b65e01
-rw-r--r-- | hangul/hangulctype.c | 65 |
1 files changed, 39 insertions, 26 deletions
diff --git a/hangul/hangulctype.c b/hangul/hangulctype.c index f9b0e80..81964f5 100644 --- a/hangul/hangulctype.c +++ b/hangul/hangulctype.c @@ -37,45 +37,49 @@ static const int njungseong = 21; static const int njongseong = 28; /** - * @brief check for a choseong - * @param c ucs4 code value - * @return true if the character c falls into choseong class - * - * This function check whether c, which must have ucs4 value, falls into - * choseong (leading consonants) class. + * @brief 초성인지 확인하는 함수 + * @param c UCS4 코드 값 + * @return @param c 가 초성에 해당하면 true를 리턴함, 아니면 false + * + * @param c 로 주어진 UCS4 코드가 초성인지 확인한다. + * Unicode 5.2 지원 */ bool hangul_is_choseong(ucschar c) { - return c >= 0x1100 && c <= 0x1159; + return (c >= 0x1100 && c <= 0x115f) || + (c >= 0xa960 && c <= 0xa97c); +; } /** - * @brief check for a jungseong - * @param c ucs4 code value - * @return true if the character c falls into jungseong class - * - * This function check whether c, which must have ucs4 value, falls into - * jungseong (vowels) class. + * @brief 중성인지 확인하는 함수 + * @param c UCS4 코드 값 + * @return @param c 가 중성에 해당하면 true를 리턴함, 아니면 false + * + * @param c 로 주어진 UCS4 코드가 중성인지 확인한다. + * Unicode 5.2 지원 */ bool hangul_is_jungseong(ucschar c) { - return c >= 0x1161 && c <= 0x11a2; + return (c >= 0x1161 && c <= 0x11a2) || + (c >= 0xd7b0 && c <= 0xd7c6); } /** - * @brief check for a jongseong - * @param c ucs4 code value - * @return true if the character c falls into jongseong class - * - * This function check whether c, which must have ucs4 value, falls into - * jongseong (trailing consonants) class. + * @brief 종성인지 확인하는 함수 + * @param c UCS4 코드 값 + * @return @param c 가 종성에 해당하면 true를 리턴함, 아니면 false + * + * @param c 로 주어진 UCS4 코드가 종성인지 확인한다. + * Unicode 5.2 지원 */ bool hangul_is_jongseong(ucschar c) { - return c >= 0x11a8 && c <= 0x11f9; + return (c >= 0x11a8 && c <= 0x11f9) || + (c >= 0xd7cb && c <= 0xd7fb); } bool @@ -87,18 +91,27 @@ hangul_is_combining_mark(ucschar c) (c >= 0xfe20 && c <= 0xfe2f); } +/** + * @brief 초성이고 조합 가능한지 확인 + */ bool hangul_is_choseong_conjoinable(ucschar c) { return c >= 0x1100 && c <= 0x1112; } +/** + * @brief 중성이고 조합 가능한지 확인 + */ bool hangul_is_jungseong_conjoinable(ucschar c) { return c >= 0x1161 && c <= 0x1175; } +/** + * @brief 종성이고 조합 가능한지 확인 + */ bool hangul_is_jongseong_conjoinable(ucschar c) { @@ -120,12 +133,12 @@ hangul_is_syllable(ucschar c) } /** - * @brief check for a jamo - * @param c ucs4 code value - * @return true if the character c falls into jamo class + * @brief 자모 인지 확인 + * @param c UCS4 코드 값 + * @return @param c 가 자모 코드이면 true를 리턴, 그외에는 false * - * This function check whether c, which must have ucs4 value, falls into - * jamo class; that is choseong, jungseong or jongseong. + * @param c 로 주어진 UCS4 코드가 자모 코드인지 확인한다. + * Unicode 5.2 지원 */ bool hangul_is_jamo(ucschar c) |