精華區beta mud 關於我們 聯絡資訊
> -------------------------------------------------------------------------- < 標題:中文不吃字及#if功能加強版的改法 1.先看你的./tintin++/src下面是否有cspace.c這個檔案... 如果沒有,請用joe or vi編輯一個cspace.c,檔案內容如下: int iscspace(c) char c; { if (c==' '||c==9||c==13||c==10) {return(1);} else {return(0);} } 注意...if之前的空格必須用tab鍵.. 2.編輯./tintin++/src/Makefile,確定CFILES =的最後一行有cspace.c 3.在./tintin++/src/tintin.h的最後面加入 int iscspace(); 4.編輯./tintin++/src/parse.c 將 /*********************************************/ /* spaceout - advance ptr to next none-space */ /* return: ptr to the first none-space */ /*********************************************/ char *space_out(s) char *s; { while(isspace(*s)) s++; return s; } 的isspace(*))改成iscspace(*s)) 5.編輯./tintin++/src/parse.c裡面的 /**************************************/ /* get all arguments - remove "s etc. */ /* Example: */ 以後,所有的*arg++=*s++;之前加入 if((*s & 0x80)!=0) { *arg++=*s++; if(*s) *arg++=*s++; } else 例如:原本是 if(*s=='\\') { if(*++s) *arg++=*s++; } 改過後變成 if(*s=='\\') { if(*++s) if((*s & 0x80)!=0) { *arg++=*s++; if(*s) *arg++=*s++; if(*s) *arg++=*s++; } else *arg++=*s++; } 這樣,你就有一個不會吃字的tintin++了..:) 如果,你還想把 tintin++ v1.5pl6 的 #if 改成像 tintin++ v1.64DEV 版那樣,可以用 if else的語法,請去找 tintin++ v1.64DEV 版裡面的 ivars.c 將它拿來覆蓋v1.5pl6版ꨊivars.c就可以了.. PS.以上改法是參考Alecia@bbs.ntu.edu.tw的改法,因為Alecia的改法會導致類似ES2 MUD如果用'來代替say會多空出一格,用這樣的改法就不會了...:> PS1.如果您拿的是tt++v15pl6s.tar.gz這個壓縮檔的話,您就可以直接拿來configure後 直接編譯就可以用了... 最後,感謝Alecia,也祝各位順利編譯成功和使用愉快... Spirits@Eastern.Pig Nightmare@ES2