diff -crN ../canfep-1.0.ORG/Makefile ./Makefile *** ../canfep-1.0.ORG/Makefile Tue Dec 18 16:09:27 2001 --- ./Makefile Thu Aug 29 19:54:05 2002 *************** *** 1,7 **** # Linux CC=c++ ! LIBS=-lcanna -ltermcap ! CFLAGS=-O2 -g # Solaris 2.6J #CC=c++ --- 1,8 ---- # Linux CC=c++ ! #LIBS=-lcanna -ltermcap ! LIBS=-lcanna -lcurses ! CFLAGS=-O2 -g -I/usr/local/canna/include # Solaris 2.6J #CC=c++ diff -crN ../canfep-1.0.ORG/pty.C ./pty.C *** ../canfep-1.0.ORG/pty.C Sat Dec 22 23:57:31 2001 --- ./pty.C Thu May 9 17:42:38 2002 *************** *** 10,15 **** --- 10,16 ---- char* Pty::ds = 0; char Pty::endstr[] = ""; char Pty::endmsg[] = ""; + char Pty::nullstr[] = ""; // コンストラクタだよん Pty::Pty(int ac, char** av, char* amsg, char* emsg) *************** *** 30,54 **** char* pt = funcstr; // スタンドアウト (反転) ! so = tgetstr("so", &pt); adjstr(so); ! se = tgetstr("se", &pt); adjstr(se); // アンダーライン (下線) ! us = tgetstr("us", &pt); adjstr(us); ! ue = tgetstr("ue", &pt); adjstr(ue); // カーソル位置の保存,保存した位置への復帰 ! sc = tgetstr("sc", &pt); adjstr(sc); ! rc = tgetstr("rc", &pt); adjstr(rc); // カーソル位置から行の最後までを削除する ! ce = tgetstr("ce", &pt); adjstr(ce); // ステータスラインを持っているかどうか --- 31,55 ---- char* pt = funcstr; // スタンドアウト (反転) ! so = Tgetstr("so", &pt); adjstr(so); ! se = Tgetstr("se", &pt); adjstr(se); // アンダーライン (下線) ! us = Tgetstr("us", &pt); adjstr(us); ! ue = Tgetstr("ue", &pt); adjstr(ue); // カーソル位置の保存,保存した位置への復帰 ! sc = Tgetstr("sc", &pt); adjstr(sc); ! rc = Tgetstr("rc", &pt); adjstr(rc); // カーソル位置から行の最後までを削除する ! ce = Tgetstr("ce", &pt); adjstr(ce); // ステータスラインを持っているかどうか *************** *** 62,72 **** // ステータスラインへ移動,戻る if (hs) { ! ts = tgoto(tgetstr("ts", &pt), 0, 0); adjstr(ts); ! fs = tgetstr("fs", &pt); adjstr(fs); ! ds = tgetstr("ds", &pt); adjstr(ds); if (ds) { strcat(endstr, ds); --- 63,73 ---- // ステータスラインへ移動,戻る if (hs) { ! ts = tgoto(Tgetstr("ts", &pt), 0, 0); adjstr(ts); ! fs = Tgetstr("fs", &pt); adjstr(fs); ! ds = Tgetstr("ds", &pt); adjstr(ds); if (ds) { strcat(endstr, ds); *************** *** 74,98 **** } } else { ! char* cs = tgoto(tgetstr("cs", &pt), tgetnum("li") - 2, 0); adjstr(cs); if (cs) { write(1, ce, strlen(ce)); write(1, cs, strlen(cs)); } ! char* cl = tgetstr("cl", &pt); adjstr(cl); if (cl) { write(1, cl, strlen(cl)); strcat(endstr, cl); } ! ds = tgoto(tgetstr("cs", &pt), tgetnum("li") - 1, 0); adjstr(ds); if (ds) { strcat(endstr, ds); strcat(endstr, ce); } ! ts = tgoto(tgetstr("cm", &pt), 0, tgetnum("li") - 1); adjstr(ts); fs = rc; } --- 75,99 ---- } } else { ! char* cs = tgoto(Tgetstr("cs", &pt), tgetnum("li") - 2, 0); adjstr(cs); if (cs) { write(1, ce, strlen(ce)); write(1, cs, strlen(cs)); } ! char* cl = Tgetstr("cl", &pt); adjstr(cl); if (cl) { write(1, cl, strlen(cl)); strcat(endstr, cl); } ! ds = tgoto(Tgetstr("cs", &pt), tgetnum("li") - 1, 0); adjstr(ds); if (ds) { strcat(endstr, ds); strcat(endstr, ce); } ! ts = tgoto(Tgetstr("cm", &pt), 0, tgetnum("li") - 1); adjstr(ts); fs = rc; } *************** *** 334,358 **** tgetent(buff, term); char funcstr[BUFSIZ]; char* pt = funcstr; ! char* cs = tgoto(tgetstr("cs", &pt), tgetnum("li") - 2, 0); adjstr(cs); if (cs) { write(1, ce, strlen(ce)); write(1, cs, strlen(cs)); } ! char* cl = tgetstr("cl", &pt); adjstr(cl); if (cl) { write(1, cl, strlen(cl)); strcpy(endstr, cl); } ! ds = tgoto(tgetstr("cs", &pt), tgetnum("li") - 1, 0); adjstr(ds); if (ds) { strcat(endstr, ds); strcat(endstr, ce); } ! ts = tgoto(tgetstr("cm", &pt), 0, tgetnum("li") - 1); adjstr(ts); } --- 335,359 ---- tgetent(buff, term); char funcstr[BUFSIZ]; char* pt = funcstr; ! char* cs = tgoto(Tgetstr("cs", &pt), tgetnum("li") - 2, 0); adjstr(cs); if (cs) { write(1, ce, strlen(ce)); write(1, cs, strlen(cs)); } ! char* cl = Tgetstr("cl", &pt); adjstr(cl); if (cl) { write(1, cl, strlen(cl)); strcpy(endstr, cl); } ! ds = tgoto(Tgetstr("cs", &pt), tgetnum("li") - 1, 0); adjstr(ds); if (ds) { strcat(endstr, ds); strcat(endstr, ce); } ! ts = tgoto(Tgetstr("cm", &pt), 0, tgetnum("li") - 1); adjstr(ts); } *************** *** 364,367 **** --- 365,382 ---- ioctl(wfd, TIOCSWINSZ, (char*) &win); signal(SIGWINCH, (SIG_PF) winchange); + } + + // + char * + Pty::Tgetstr(char *str, char **p) + { + char *entry; + + entry = tgetstr(str, p); + if (entry == (char *)NULL){ + return nullstr; + }else{ + return entry; + } } diff -crN ../canfep-1.0.ORG/pty.H ./pty.H *** ../canfep-1.0.ORG/pty.H Sat Dec 22 23:56:54 2001 --- ./pty.H Thu May 9 17:36:01 2002 *************** *** 51,56 **** --- 51,57 ---- static int wfd; private: static void adjstr(char* str); + static char* Tgetstr(char* str, char** p); protected: static int hs; char* so; *************** *** 69,74 **** --- 70,76 ---- public: static char endstr[BUFSIZ]; static char endmsg[BUFSIZ]; + static char nullstr[BUFSIZ]; }; #endif /* _CANFEP_PTY_H_ */