hanterm-3.1.6 UTF-8 모드에서 ㅠ_ㅠ 쳐지나요
글쓴이: oedalpha / 작성시간: 일, 2004/06/13 - 12:58오후
MacOSX Panther에서 hanterm-3.1.6을 쓰고 있는데,
UTF-8 모드에서 ㅠ_ㅠ 가 ㅜ_ㅜ 로 쳐집니다. 혹시 저만 그런건지 궁금합니다.
한텀 쓰시는 분들 UTF-8 모드에서 ㅠ_ㅠ 한번 쳐봐주세요..
hanterm-3.1.6 소스를 좀 쳐다본 바로는 hanterm 쪽의 버그인 것 같긴 합니다만
mac에서 컴파일 하는 방법을 잘 몰라서, 더이상 테스트를 못해보고 있습니다.
./configure 할 때
configure: error: Unable to successfully link Athena library (-lcf_x_athena) with test program
이 에러 나는데.. 컴파일 하는 법 아시는 분들도 답변 부탁드립니다.
-----------------------------
이 아래는 소스에 관심있는 분들만 보세요..
hanterm에서 hangul.c 의 일부 발췌
/* 조합형 중성 -> 완성형 낱자 변환 */ static unsigned char johab_vow_to_wan[] = { 0, 0, 0xd4, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, /* (채움),ㅏ,ㅐ,ㅑ,ㅒ,ㅓ */ 0, 0, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, /* ㅔ,ㅕ,ㅖ,ㅗ,ㅗㅏ,ㅗㅐ */ 0, 0, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* ㅗㅣ,ㅛ,ㅜ,ㅜㅓ,ㅜㅔ,ㅜㅣ */ 0, 0, 0xd0, 0xd1, 0xd2, 0xd3 /* ㅠ,ㅡ,ㅡㅣ,ㅣ */ }; static char jamo_index2[]= { /* 0:fill 1:ㅏ, ... */ 0, 0, 0, 1, 2, 3, 4, 5, 0, 0, 6, 7, 8, 9, 10, 11, 0, 0, 12, 13, 14, 15, 16, 17, 0, 0, 18, 19, 20, 21, 0, 0 }; /* 3 바이트로 된 조합형 -> UTF-8 */ int convert_3_to_utf8( f , m , l , buf ) int f, m, l; unsigned char *buf; { int index_f, index_m, index_l; unsigned long code = 0; #if defined(DEBUG_PATCH_UTF8) /* by hanmaum 1998.2.5 */ printf("convert_3_to_utf8(%02x,%02x,%02x)\n", f, m, l); #endif if (f == 0xff) { code = convert_char_ksc5601_to_ucs2((unsigned char)m, (unsigned char)l); } else { index_f = jamo_index1[f]; index_m = jamo_index2[m]; index_l = jamo_index3[l]; if (index_f > 0 && index_m > 0 && index_l >= 0) { code = 0xac00 + ((((index_f-1) * 21) + (index_m-1)) * 28) + index_l; /* 0xac00 <= code <= 0xd7a3 */ } else if (index_f > 0 && index_m == 0 && index_l == 0) { code = 0x3100 | (johab_fcon_to_wan[index_f+1] - (unsigned char)0x70); } else if (index_f == 0 && index_m > 0 && index_l == 0) { code = 0x3100 | (johab_vow_to_wan[index_m+2] - (unsigned char)0x70); } else if (index_f > 0 && index_m == 0 && index_l == 0) { code = 0x3100 | (johab_lcon_to_wan[index_l+1] - (unsigned char)0x70); } }
마지막 convert_3_to_utf8 함수에서 index_m 에서 ㅓ랑 ㅔ 사이가 두칸 벌어지는데,
johab_vow_to_wan 에서 또 한번 두칸 벌어지게 됩니다.. 결과적으로 네칸이 벌어지고, ㅠ와 ㅜ가 네칸 차이지요.. 이 부분 때문에 문제가 있는게 아닐까 하고 생각합니다.
Forums:
데비안의 hanterm-classic 3.1.6.0-3에서도 그러네요.
데비안의 hanterm-classic 3.1.6.0-3에서도 그러네요.
cvs에서 최신 버전을 받아서 컴파일하니까 제대로 되네요.. 2년,
cvs에서 최신 버전을 받아서 컴파일하니까 제대로 되네요..
2년, 한달 전에 wkpark님이 고치신 듯 합니다..
정식 릴리즈 버전은 2002년 1월 판이라서 고치신 게 반영이 안되었나봅니다.
댓글 달기