| ncftp에서 한글 사용 (글 dk) | 작성일 : 2003/12/12 00:59 |
| 조회수 : 8624 |
|
ncftp 3.1.6에서는 아래 글처럼 getline.c 의 gl_getc() 함수가 unsigned char ch; 로 정의되어 있어 한글 지원이 잘 됩니다. 또한 ncftp처럼 편리한 lftp( http://lftp.yar.ru/ )는 한글 지원이 잘 됩니다. - 좋은진호(truefeel) 출처 : 리눅스 사랑넷, http://linux-sarang.net/board/?p=read&table=tip&no=8862 ----------------------------------------------------------------------------------- 2520번: ncftp에서 한글 쓰기 글쓴이: dk 글쓴날: 2003-02-16 13:25:43 읽은수: 854 http://www.ncftp.com에서 받은 순수한 ncftp에서는 한글 입력을 하면 바로 종료가 됩니다. (윈도우(win2k)용은 방금 테스트해보니 관계가 없네요.) 그동안 debian에서는 담당 메인테이너분이 GNU readline을 쓰겠금 패치를 꾸준히 해왔던 모양입니다. sid의 현재 3.1.5버전의 ncftp는 이 패치가 적용이 안되있어서 불편하네요. 소스를 받아서 풀어보니깐 GNU readline을 쓰지 않을 것이라고 못박아 둔 부분도 보이네요. 그런데 정말 우습게도 소스 코드 한 줄만 고치는 것만으로 한글입력이 되길래 이렇게 팁을 씁니다. -_-; ncftp-3.1.5/ncftp/getline.c 의 gl_getc() 함수에서 char ch; 부분을 unsigned char ch; 로 바꾸시면 됩니다. 아무리 한줄이라지만 patch 파일이 더 직관적인 것 같습니다. -_-; http://linuxstudy.pe.kr/~donkey/patchdul/ncftp-3.1.5-dk0.1.patch.gz GNU readline만큼 좋은 것은 아니겠지만 사용에 별다른 지장은 없어보입니다. 다만 패스워드를 적을 때 별표가 나오는 것이 좀 맘에 안들고, 2바이트 문자를 지우려면 백스페이스 두 번을 눌러야 하는 불편함이 있네요. ( readline이란? 우리가 배쉬처럼 명령이나 문장을 입력할 때 줄을 편집할 수 있게금(방향키로 글자 사이를 이동할 수 있게금해주고, 지울 수 있게해주는 것)도와주는 라이브러리, 또한 히스토리 기능이 있어 이전에 썼던 내용을 다시 불러 올 수도 있다. http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html ) ----------------------------------------------------------------------------------- 2520번 글의 답장글: RE: RE: ncftp에서 한글 쓰기 글쓴이: dk 글쓴날: 2003-02-15 01:03:15 읽은수: 353 gl_getc()에서 char로 받고 int로 캐스팅하는 부분이 있는데요. 한글의 1바이트는 결과 값이 음이 됩니다. getline()함수가 gl_getc() 를 호출하고 음의 값을 받으면 NULL을 봔환하는데, 결론적으로 ReadLine()함수가 getline()를 호출할 때 NULL을 반환 받을 경우, EOF문자를 받은 것으로 판단하고 정상적(!!)으로 종료해버립니다. 그래서 char대신 (양의 값이 되겠금) unsigned char로 받게 한 건데 제대로 고친 것인지는 아직 잘 모르겠네요. : 헐. 문자형을 256bytes 까지 받게 함으로서 한글 사용이 되어버리다니. : : ^^; 간단하지만 무척 유용하네요. ^^ |
|||||||||
|
|