생쇼

Urwid 라이브러리를 사용해서 아라라 프로젝트의 텔넷 클라이언트를 짜고 있던 때였다. 상자를 그리기 위해서 Urwid의 SolidFill, LineBox 클래스를 사용해서 유니코드에 할당되어 있는 선 문자를 사용하였고, 선을 그리기 위해서도 같은 문자를 사용하였다. 문제는 거기에서부터 시작되었다. 아라라의 요구 조건 중 하나인 윈도 텔넷 클라이언트에도 실행되어야 한다는 조건 때문에 EUC-KR 로케일에서 작동시켰어야 했고, LANG 환경 변수를 적당히 주어서 실행시키니 에러가 났다.

Urwid 메일링 리스트에 이 에러를 보내 보았더니 쓰고 있는 터미널 종류가 무엇인지 물어 보았다. 그래서 왠지 터미널 문제일 줄 알고 Urwid 메일링에는 터미널 버그라는 사실을 보고했다. 진짜 터미널 버그인지 확인하기 위해서 Yakuake와 Konsole에서 각각 프로그램을 실행시켜 보았다.

사용자 삽입 이미지

내 시스템에 깔려 있는 터미널 에뮬레이터는 KDE 3/4의 Konsole, Yakuake이다. 그래서 KDE 4의 Konsole에서 실행시켜 보았더니 제대로 된다. 이제는 버그 보고할 곳을 Yakuake 버그 보고 시스템으로 돌렸다. 결국 버그 리포트도 하나 질렀다.

보시다시피 그 어느 누가 낚이지 않았을까. 어 그런데… Yakuake의 인코딩 설정을 바꾸고 다시 실행해 봤더니 이제는 제대로 되었다. 뭐가 문제였나 곰곰히 생각해 봤더니… 문제의 원인은 이도 저도 그도 아니었다.

screen, 그래 screen이 문제였다. 인코딩을 바꿔 주기 귀찮아서 screen을 썼더니만 이런 문제가 생겼다. Ctrl-A :을 한 다음 encoding euckr만 하면 될 정도로 간단했기 때문에 이것이 버그의 원인이 될 줄은 꿈에도 몰랐다. 자 이제 screen에 버그를 보고하러 갈 차례인 것 같다. 막상 screen 버그란 걸 알고 나서 너무나도 허무했다. 이 문제 때문에 거의 1주일간 머리를 싸맸다는 것을 생각하면 더더욱 그렇다.