.\" (c) 2001 by Poonlap Veerathanbutr (Poonlap.Veerathanabutr@sun.co.jp) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" License. .\" $Id: thctype.3,v 1.2 2003-09-10 05:29:45 thep Exp $ .TH thctype 3 "Sep 14, 2001" "Thai Linux Working Group" "libthai's Manual" .SH NAME .B thctype related functions .sp .B th_istis \- Determines if a character is TIS-620 encoding. .br .B th_isthai \- Determines if a character is Thai character. .br .B th_iseng \- Determines if a character is English character. .sp .B Thai letter classification related functions .sp .B th_isthcons \- Determines if a character is Thai consonant. .br .B th_isthvowel \- Determines if a character is Thai vowel. .br .B th_isthtone \- Determines if a character is Thai tonemark. .br .B th_isthdiac \- Determines if a character is Thai diacritic. .br .B th_isthdigit \- Determines if a character is Thai digit. .br .B th_isthpunct \- Determines if a character is punctuation. .sp .B Thai vowel classification related function .sp .B th_isldvowel \- Determines if a character is leading vowel. .br .B th_isflvowel \- Determines if a character is following vowel. .br .B th_isupvowel \- Determines if a character is above(upper) vowel. .br .B th_isblvowel \- Determines if a character is below vowel. .sp .B Misc .sp .B th_chlevel \- Determines the position(level) of a Thai character for rendering. .br .B th_iscombchar \- Determines if a character is combination character. .SH SYNOPSIS .nf \fB#include \fR .br \fIint\fR \fBth_istis\fR(\fIthchar_t c); int \fBth_isthai\fR(\fIthchar_t c); int \fBth_iseng\fR(\fIthchar_t c); int \fBth_isthcons\fR(\fIthchar_t c); int \fBth_isthvowel\fR(\fIthchar_t c); int \fBth_isthtone\fR(\fIthchar_t c); int \fBth_isthdiac\fR(\fIthchar_t c); int \fBth_isthdigit\fR(\fIthchar_t c); int \fBth_isthpunct\fR(\fIthchar_t c); int \fBth_chlevel\fR(\fIthchar_t c); int \fBth_iscombchar\fR(\fIthchar_t c); .SH DESCRIPTION The Thai Standard Industrial Standards Institute(TIS) defined the Thai character set for using with computer named TIS-620. This character set is 8-bit encoded including both English and Thai characters. Aliases of TIS-620 are TIS620, TIS620-0, TIS620.2529-1, TIS620.2533-0 and ISO-IR-166. .PP The followings are the enconding values in hexadecimal, unicode values and their names. .sp 0x00 NULL (NUL) .br 0x01 START OF HEADING (SOH) .br 0x02 START OF TEXT (STX) .br 0x03 END OF TEXT (ETX) .br 0x04 END OF TRANSMISSION (EOT) .br 0x05 ENQUIRY (ENQ) .br 0x06 ACKNOWLEDGE (ACK) .br 0x07 BELL (BEL) .br 0x08 BACKSPACE (BS) .br 0x09 CHARACTER TABULATION (HT) .br 0x0A LINE FEED (LF) .br 0x0B LINE TABULATION (VT) .br 0x0C FORM FEED (FF) .br 0x0D CARRIAGE RETURN (CR) .br 0x0E SHIFT OUT (SO) .br 0x0F SHIFT IN (SI) .br 0x10 DATALINK ESCAPE (DLE) .br 0x11 DEVICE CONTROL ONE (DC1) .br 0x12 DEVICE CONTROL TWO (DC2) .br 0x13 DEVICE CONTROL THREE (DC3) .br 0x14 DEVICE CONTROL FOUR (DC4) .br 0x15 NEGATIVE ACKNOWLEDGE (NAK) .br 0x16 SYNCHRONOUS IDLE (SYN) .br 0x17 END OF TRANSMISSION BLOCK (ETB) .br 0x18 CANCEL (CAN) .br 0x19 END OF MEDIUM (EM) .br 0x1A SUBSTITUTE (SUB) .br 0x1B ESCAPE (ESC) .br 0x1C FILE SEPARATOR (IS4) .br 0x1D GROUP SEPARATOR (IS3) .br 0x1E RECORD SEPARATOR (IS2) .br 0x1F UNIT SEPARATOR (IS1) .br 0x20 SPACE .br 0x21 EXCLAMATION MARK .br 0x22 QUOTATION MARK .br 0x23 NUMBER SIGN .br 0x24 DOLLAR SIGN .br 0x25 PERCENT SIGN .br 0x26 AMPERSAND .br 0x27 APOSTROPHE .br 0x28 LEFT PARENTHESIS .br 0x29 RIGHT PARENTHESIS .br 0x2A ASTERISK .br 0x2B PLUS SIGN .br 0x2C COMMA .br 0x2D HYPHEN-MINUS .br 0x2E FULL STOP .br 0x2F SOLIDUS .br 0x30 DIGIT ZERO .br 0x31 DIGIT ONE .br 0x32 DIGIT TWO .br 0x33 DIGIT THREE .br 0x34 DIGIT FOUR .br 0x35 DIGIT FIVE .br 0x36 DIGIT SIX .br 0x37 DIGIT SEVEN .br 0x38 DIGIT EIGHT .br 0x39 DIGIT NINE .br 0x3A COLON .br 0x3B SEMICOLON .br 0x3C LESS-THAN SIGN .br 0x3D EQUALS SIGN .br 0x3E GREATER-THAN SIGN .br 0x3F QUESTION MARK .br 0x40 COMMERCIAL AT .br 0x41 LATIN CAPITAL LETTER A .br 0x42 LATIN CAPITAL LETTER B .br 0x43 LATIN CAPITAL LETTER C .br 0x44 LATIN CAPITAL LETTER D .br 0x45 LATIN CAPITAL LETTER E .br 0x46 LATIN CAPITAL LETTER F .br 0x47 LATIN CAPITAL LETTER G .br 0x48 LATIN CAPITAL LETTER H .br 0x49 LATIN CAPITAL LETTER I .br 0x4A LATIN CAPITAL LETTER J .br 0x4B LATIN CAPITAL LETTER K .br 0x4C LATIN CAPITAL LETTER L .br 0x4D LATIN CAPITAL LETTER M .br 0x4E LATIN CAPITAL LETTER N .br 0x4F LATIN CAPITAL LETTER O .br 0x50 LATIN CAPITAL LETTER P .br 0x51 LATIN CAPITAL LETTER Q .br 0x52 LATIN CAPITAL LETTER R .br 0x53 LATIN CAPITAL LETTER S .br 0x54 LATIN CAPITAL LETTER T .br 0x55 LATIN CAPITAL LETTER U .br 0x56 LATIN CAPITAL LETTER V .br 0x57 LATIN CAPITAL LETTER W .br 0x58 LATIN CAPITAL LETTER X .br 0x59 LATIN CAPITAL LETTER Y .br 0x5A LATIN CAPITAL LETTER Z .br 0x5B LEFT SQUARE BRACKET .br 0x5C REVERSE SOLIDUS .br 0x5D RIGHT SQUARE BRACKET .br 0x5E CIRCUMFLEX ACCENT .br 0x5F LOW LINE .br 0x60 GRAVE ACCENT .br 0x61 LATIN SMALL LETTER A .br 0x62 LATIN SMALL LETTER B .br 0x63 LATIN SMALL LETTER C .br 0x64 LATIN SMALL LETTER D .br 0x65 LATIN SMALL LETTER E .br 0x66 LATIN SMALL LETTER F .br 0x67 LATIN SMALL LETTER G .br 0x68 LATIN SMALL LETTER H .br 0x69 LATIN SMALL LETTER I .br 0x6A LATIN SMALL LETTER J .br 0x6B LATIN SMALL LETTER K .br 0x6C LATIN SMALL LETTER L .br 0x6D LATIN SMALL LETTER M .br 0x6E LATIN SMALL LETTER N .br 0x6F LATIN SMALL LETTER O .br 0x70 LATIN SMALL LETTER P .br 0x71 LATIN SMALL LETTER Q .br 0x72 LATIN SMALL LETTER R .br 0x73 LATIN SMALL LETTER S .br 0x74 LATIN SMALL LETTER T .br 0x75 LATIN SMALL LETTER U .br 0x76 LATIN SMALL LETTER V .br 0x77 LATIN SMALL LETTER W .br 0x78 LATIN SMALL LETTER X .br 0x79 LATIN SMALL LETTER Y .br 0x7A LATIN SMALL LETTER Z .br 0x7B LEFT CURLY BRACKET .br 0x7C VERTICAL LINE .br 0x7D RIGHT CURLY BRACKET .br 0x7E TILDE .br 0x7F DELETE (DEL) .br 0xA1 THAI CHARACTER KO KAI .br 0xA2 THAI CHARACTER KHO KHAI .br 0xA3 THAI CHARACTER KHO KHUAT .br 0xA4 THAI CHARACTER KHO KHWAI .br 0xA5 THAI CHARACTER KHO KHON .br 0xA6 THAI CHARACTER KHO RAKHANG .br 0xA7 THAI CHARACTER NGO NGU .br 0xA8 THAI CHARACTER CHO CHAN .br 0xA9 THAI CHARACTER CHO CHING .br 0xAA THAI CHARACTER CHO CHANG .br 0xAB THAI CHARACTER SO SO .br 0xAC THAI CHARACTER CHO CHOE .br 0xAD THAI CHARACTER YO YING .br 0xAE THAI CHARACTER DO CHADA .br 0xAF THAI CHARACTER TO PATAK .br 0xB0 THAI CHARACTER THO THAN .br 0xB1 THAI CHARACTER THO NANGMONTHO .br 0xB2 THAI CHARACTER THO PHUTHAO .br 0xB3 THAI CHARACTER NO NEN .br 0xB4 THAI CHARACTER DO DEK .br 0xB5 THAI CHARACTER TO TAO .br 0xB6 THAI CHARACTER THO THUNG .br 0xB7 THAI CHARACTER THO THAHAN .br 0xB8 THAI CHARACTER THO THONG .br 0xB9 THAI CHARACTER NO NU .br 0xBA THAI CHARACTER BO BAIMAI .br 0xBB THAI CHARACTER PO PLA .br 0xBC THAI CHARACTER PHO PHUNG .br 0xBD THAI CHARACTER FO FA .br 0xBE THAI CHARACTER PHO PHAN .br 0xBF THAI CHARACTER FO FAN .br 0xC0 THAI CHARACTER PHO SAMPHAO .br 0xC1 THAI CHARACTER MO MA .br 0xC2 THAI CHARACTER YO YAK .br 0xC3 THAI CHARACTER RO RUA .br 0xC4 THAI CHARACTER RU .br 0xC5 THAI CHARACTER LO LING .br 0xC6 THAI CHARACTER LU .br 0xC7 THAI CHARACTER WO WAEN .br 0xC8 THAI CHARACTER SO SALA .br 0xC9 THAI CHARACTER SO RUSI .br 0xCA THAI CHARACTER SO SUA .br 0xCB THAI CHARACTER HO HIP .br 0xCC THAI CHARACTER LO CHULA .br 0xCD THAI CHARACTER O ANG .br 0xCE THAI CHARACTER HO NOKHUK .br 0xCF THAI CHARACTER PAIYANNOI .br 0xD0 THAI CHARACTER SARA A .br 0xD1 THAI CHARACTER MAI HAN-AKAT .br 0xD2 THAI CHARACTER SARA AA .br 0xD3 THAI CHARACTER SARA AM .br 0xD4 THAI CHARACTER SARA I .br 0xD5 THAI CHARACTER SARA II .br 0xD6 THAI CHARACTER SARA UE .br 0xD7 THAI CHARACTER SARA UEE .br 0xD8 THAI CHARACTER SARA U .br 0xD9 THAI CHARACTER SARA UU .br 0xDA THAI CHARACTER PHINTHU .br 0xDF THAI CHARACTER SYMBOL BAHT .br 0xE0 THAI CHARACTER SARA E .br 0xE1 THAI CHARACTER SARA AE .br 0xE2 THAI CHARACTER SARA O .br 0xE3 THAI CHARACTER SARA AI MAIMUAN .br 0xE4 THAI CHARACTER SARA AI MAIMALAI .br 0xE5 THAI CHARACTER LAKKHANGYAO .br 0xE6 THAI CHARACTER MAIYAMOK .br 0xE7 THAI CHARACTER MAITAIKHU .br 0xE8 THAI CHARACTER MAI EK .br 0xE9 THAI CHARACTER MAI THO .br 0xEA THAI CHARACTER MAI TRI .br 0xEB THAI CHARACTER MAI CHATTAWA .br 0xEC THAI CHARACTER THANTHAKHAT .br 0xED THAI CHARACTER NIKHAHIT .br 0xEE THAI CHARACTER YAMAKKAN .br 0xEF THAI CHARACTER FONGMAN .br 0xF0 THAI DIGIT ZERO .br 0xF1 THAI DIGIT ONE .br 0xF2 THAI DIGIT TWO .br 0xF3 THAI DIGIT THREE .br 0xF4 THAI DIGIT FOUR .br 0xF5 THAI DIGIT FIVE .br 0xF6 THAI DIGIT SIX .br 0xF7 THAI DIGIT SEVEN .br 0xF8 THAI DIGIT EIGHT .br 0xF9 THAI DIGIT NINE .br 0xFA THAI CHARACTER ANGKHANKHU .br 0xFB THAI CHARACTER KHOMUT .sp Thai characters consisted of 44 consonants, vowels, tonemarks, diacritics and Thai digits. Thai vowels are divided into 4 groups, Leading Vowels(LV), Following Vowels(FV), Below Vowels(BV) and Above Vowels(AV). There are 4 tonemarks whose posotion is above a consonant. Diacritics are divided into 2 groups, Above Diacritics(AD) and Below Diacritics(BD). .sp .B Character Level .sp Libthai has defined 4 levels for the posotion of a character. .br - Below level: a character is written/displayed below the final consonant. \fBth_chlevel\fR will return the value -1 for this character. .br - Base level: this includes consonants, FV and LV. A character is written/displayed on baseline. \fBth_chlevel\fR will reuturn the values 0 for this character. .br - Above level: a character is written/displayed just below the final consonant. .br - Top level: this includes tonemarks and diacritics. Sometimes, a character in top level can be located in above level for the sake of beauty. .sp The following shows an example of Thai word and characters' level. .sp --------------------------- Top(2) .br ------*-------------------- Top(2) .br ------*-------------------- Top(2) .br .B --------------------------- .br --------------------------- Above(1) .br ------*---------------*---- Above(1) .br ---****---------------*---- Above(1) .br --------------------------- Above(1) .br .B --------------------------- .br --------------------------- Base(0) .br --*---*----***-----*--*---- Base(0) .br -*-*-*-*--*---*---*-*-*---- Base(0) .br --**-*-*------*---**--*---- Base(0) .br ---**--*---*--*---*---*---- Base(0) .br ---**--*--*-*-*----*--*---- Base(0) .br ---*---*--**--*---*---*---- Base(0) .br ---*---*--*---*---*---*---- Base(0) .br ---*---*--*****---*****---- Base(0) .br .B --------------------------- Baseline .br --------------------------- Below(-1) .br -------------------**-*---- Below(-1) .br --------------------***---- Below(-1) .br --------------------------- Below(-1) .sp A character located at below, above or top level is also called dead character. It is usually composed with a consonant, after a dead character is typed, the cursor will not be advanced to the next character. BV, BD, TONE, AD and AV are classified as dead character. .SH "RETURN VALUE" All functions return 1 if it is true and return 0 if it is flase. \fBth_chlevel\fR returns -1 if the character is in the below level, 0 if the character is in the base level, 1 if the character is in the above level and 2 if the chracter is in the top level. .SH "SEE ALSO" libthai(3) .SH "AUTHORS" \fBProject Leader\fR .br Theppitak Karoonboonyanan .br \fBMembers\fR .br Chanop Silpa-Anan .br Pattara Kiatisevi .br Vuthichai Ampornaramveth .br Poonlap Veerathanabutr