뭘 이런걸..

Posted
Filed under Tech/프로그래밍
hanterm-xf 는 utf8 을 지원하지 않습니다. RH 가 utf8 로 default charset 을 변경한 이 후 부터, hanterm-xf 가 utf8 을 지원하지 않는 다는 이유로 꼬박 euc-kr 을 고집해 오고 있었습니다만.. 아무래도 대세에 밀리는 기분이 들어서 utf8 환경으로 변경을 해 보고자 작업을 하게 되었습니다.

처음에는 original hanterm 이 utf8 을 지원하는 까닭에 hanterm 을 cygwin 에서 난관끝에 빌드를 하고, utf8 이 지원됨을 확인하고 뿌듯했으나, 곧, 창을 resize 했을 경우, 원 size 의 화면만 출력이 되는 문제를 해결하지 못해.. 포기하고, termcap 의 문제인가 살펴 보았지만 알수 없는 암호만 가득해서 결국에는 소스를 열어 보고 이리저리 해 보았지만 해결을 못했습니다.

그래서 안되면, xterm 이 utf8 을 지원하니, xterm 의 utf8 기능을 hanterm-xf 에 반영을 하자고 hanterm-xf 의 소스를 열었으나.. 역시 define 의 엄청난 압박에 포기하고, iconv 를 이용해서 출력과 입력에만 처리하기로 하고 patch 를 작성 했습니다.

비록 요즘 gnome 이나 kde 의 library 를 이용한 term 들이 기본으로 한글을 지원하면서 hanterm(-xf) 의 필요성이 점점 없어지면서, 별로 사용을 하고 있지 않지만, cygwin 이나 기타 hanterm 에 대한 애정 때문에 사용하시는 분들은 아래의 패치를 이용하시면 utf8 걱정은 덜 수 있을 듯 싶습니다.



이 패치는 hanterm-xf 2.0.5-177 (현재 cvs version) 에 기반한 패치이며, 2.0.5 에서는 아마 적용이 가능할 것이며, 2.x 의 경우 수작업으로 패치를 하시면 사용이 가능 할 겁니다.

euc-kr mode

utf8 mode



잠깐, hanterm 과 hanterm-xf 는 뭐가 틀리나요?

hanterm 과 hanterm-xf 는 엄연히 뿌리가 다릅니다. hanterm 은 현재 XL 레이싱을 개발하고 있고, 리니지를 개발한 송재경씨가 X11R5 기반의 xterm 을 기반으로 작성을 했으며, 여러 OS 에서 포팅이 가능하다는 장점을 가지고 있는 반면에, hanterm-xf 는 ami, gau 등을 제작한 미지의 황치덕씨가 X11R6 기반의 xterm 에 hanterm 의 패치가 반영하여 작성을 했습니다. 그래서 여러가지 면에서 hanterm 보다 미려하기는 하지만 utf8 이 지원되지 않은 단점등 여러가지가 있습니다. 현재, hanterm 과 hamter-xf 의 개발은 중단된 상태나 다름이 없습니다.
2006/01/04 23:46 2006/01/04 23:46
김정균

utf8 patch 가 hanterm-xf 에 merge 가 되었습니다. hanterm-xf 2.0.6-177 부터 반영이 되었으니, 참고하세요.

badung

오!! 감사드립니다 잘 되는군요 그런데 utf-8모드로 따로 실행하거나 단축키는 없나요? 지금은 [완성]을 마우스로 찍어서 utf-8로 변환하고 있는데요..

김정균

$HOME/.Xdefaults 라는 파일을 생성하고, 이 파일에

Hanterm*hangulCode: 2

라고 지정해 주면 됩니다. 또는, hanterm 의 설정 파일 (여기에 지정해 주는 건데, 설치시에 따라 위치가 달라져서..), 저의 경우에는 /etc/X11/app-defaults/Hanterm 에

*hangulCode: 2

라고 지정을 해 주시면 됩니다. 폰트 설정을 하셨을테니, 폰트 설정을 하는 설정 파일에 해 주시면 됩니다.

badung

방법에 대해서 조금 질문 드릴게요 사용배포판은 젠투이구요 hanterm-xf-2.0.5-173.tar.gz 를 풀었고 그 디렉토리에서 patch -p1 <han...patch 를 했습니다. 그리고 ./configure 후에 make를 했는데


badung hanterm-xf-2.0.5-173 # make
gcc -I. -I. -DHAVE_CONFIG_H -D_GNU_SOURCE -I./composer -D_DEBUG_root_ -DHANTERM_PKGNAME=\"hanterm-xf\" -DHANTERM_VERSION=\"2.0.5\" -DKEYBOARD_DIR=\"/usr/local/share/hangul_keyboard\" -g -O2 -c ./charproc.c
./charproc.c: In function `VTInitialize':
./charproc.c:4997: error: `C_UTF8' undeclared (first use in this function)
./charproc.c:4997: error: (Each undeclared identifier is reported only once
./charproc.c:4997: error: for each function it appears in.)
./charproc.c: In function `from_utf8':
./charproc.c:6926: warning: passing arg 2 of `iconv' from incompatible pointer type
./charproc.c: In function `to_utf8':
./charproc.c:6984: warning: passing arg 2 of `iconv' from incompatible pointer type


이렇게 나오네요. 방법이 틀린건가요? 아니면 더 첨부해야 할 파일이 있을까요?

김정균

한글 관련 옵션을 주셔야 합니다. 그러지 않으면 xterm 과 동일하게 됩니다. 대략적으로

--x-includes=/usr/X11R6/include \
--x-libraries=/usr/X11R6/lib --with-x \
--enable-doublechars --enable-i18n \
--with-libiconv --enable-freetype \
--disable-input-method --enable-wide-chars \
--enable-chat --enable-now-chat \
--enable-boxchar --enable-ansi-color \
--with-own-terminfo=/usr/share/terminfo

정도는 주셔야 할겁니다.