summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChoe Hwanjin <choe.hwanjin@gmail.com>2009-10-17 22:42:45 +0900
committerChoe Hwanjin <choe.hwanjin@gmail.com>2009-10-17 22:42:45 +0900
commitbcdfb83212580a0ccad8c5867653a0774c9e0aa7 (patch)
tree2c1e03dd408f5fec8492e607b83364cd8ec606ed
parenteb36c6692a974004d911325b8d744465caee6974 (diff)
downloadlibhangul-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.c65
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)