amd64 한텀 삽질

Necromancer의 이미지

시스템을 셈프론으로 갈아치우고 나서
거의 3주만에 한텀 설치성공했습니다.

아직 64비트 전환이 완전히 안돼서 그런지 이런저런 문제와 삽질꺼리가
자주 발생을 하네요. 3주만에 어느정도 기본적인 세팅을 끝냈다는 OTL

젠투이긴 하지만 마스크걸려있고 푸는방법도 몰라서 소스 받아서 컴팔했습니다.
소스파일 2개에서 에러가 나는데 그거 해결하는 방법은 의외로 간단하더군요.

소스파일중 button.c와 charproc.c에서
extern void malloc; 이라고 되어있는 줄을 삭제하거나
주석처리해버리면 됩니다.

no available ptys 문제도 해결했고 (/dev/pty 아래 파일에 rw주기)
아시*폰트 공개된거 받아다가 좀 꾸며야겠습니다. 코딩할때 눈요깃거리로 :D

그나저나 한텀 개발자 페이지는 썰렁하네요 OTL

추가 : 황치덕님의 Hanterm-xf는 무슨문제인지 컴팔은 잘되는데 띄우고
글자 몇개 입력하면 뻗더군요. 특히 utf-8 지원부분 집어넣으면 컴팔
에러내고 OTL

n810322의 이미지

chmod 666 /dev/pty* 이란 얘긴가요?

바둥바둥~!

Necromancer의 이미지

맞긴 맞습니다만
좀 찜찜해서 아래와 같이 했습니다.

chmod 600 /dev/pty*
chmod 4755 hanterm

Written By the Black Knight of Destruction

happibum의 이미지

위 방법대로 하니까 한텀 classic 창이 11개 까지는 잘뜨는데
그이후로 pty가 없다고 안되어서... ㅠ.ㅠ
결국 hanterm-xf를 쓰기로 하고 한참 삽질했습니다.
hanterm-xf가 segfault내고 뻗는 것은
x86에서는 size_t랑 int가 크기가 같았는데,
amd64에서 size_t가 8바이트, int는 4바이트로 달라서 생기는 문제였습니다.
hanterm-xf의 johabcode2.c를 조금 고치니까 잘 동작하는것 같습니다.

--- johabcode2.c    2006-01-02 00:37:58.000000000 +0900
+++ johabcode2.c    2006-01-02 00:25:40.000000000 +0900
@@ -40,7 +40,7 @@
 int
 johab_to_wansung(char *s, int johab)
 {
-    int in_len, out_len;
+    size_t in_len, out_len;
     char in[2];
     char *in_p, *out_p;
     if (johab < 128) {
@@ -68,8 +68,8 @@
 {
     char *out_p = s;
     char *in_p = johab;
-    int in_len = len;
-    int out_len = len;
+    size_t in_len = len;
+    size_t out_len = len;
     if (johab_to_wan_cd == (iconv_t) -1) {
        johab_to_wan_cd = iconv_open(CD_EUC_KR, CD_JOHAB);
        if (johab_to_wan_cd == (iconv_t) -1) {
@@ -84,7 +84,7 @@
 int
 johab_from_wansung(char *s, int wansung)
 {
-    int in_len, out_len;
+    size_t in_len, out_len;
     char in[2];
     char *in_p, *out_p;
     if (wansung < 128) {
@@ -112,8 +112,8 @@
 {
     char *out_p = s;
     char *in_p = wansung;
-    int in_len = len;
-    int out_len = len;
+    size_t in_len = len;
+    size_t out_len = len;
     if (wan_to_johab_cd == (iconv_t) -1) {
        wan_to_johab_cd = iconv_open(CD_JOHAB, CD_EUC_KR);
        if (wan_to_johab_cd == (iconv_t) -1) {
@@ -155,7 +155,7 @@
 int
 johab_to_utf8(char *s, int johab)
 {
-    int in_len, out_len;
+    size_t in_len, out_len;
     char in[2];
     char *in_p, *out_p;
     if (johab < 128) {

x86에서도 문제를 일으키지 않을 것으로 생각됩니다...

n810322의 이미지

전 패치로 hanterm-xf + utf-8 로 쓰고있습니다.[/code]

바둥바둥~!

김정균의 이미지

hanterm-xf + utf8 은 http://kldp.net/tracker/?atid=300034&group_id=34&func=browse 참고 하세요. 패치가 있으니까요. 다만, iconv 에서 size_t 로 변경 하셨듯이.. utf8 patch 에서도 아마 수정해 줘야 할 겁니다. utf8 patch 에서는 int 로 되어 있으니까요.