> -------------------------------------------------------------------------- <
標題:中文不吃字及#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