※ 引述《stacker.bbs@mail.ee.ntou.edu.tw (天山隱士)》之銘言:
: ※ 引述《wisely.bbs@student.shu.edu.tw (來自黑暗的深沉)》之銘言:
: : 不能用term_init()就把它往後移到multi_user_check()後面試試.
: 喔 我不是這個意思
: 因為如果不用term_init(),那initscr()好像不會動作
: 而貓大是這樣做的
: ...
: static void
: login_query()
: {
: ...
: term_init("vt220"); <-- 這裡我就不能動了
建議用vt100
: initscr();
: clear();
: counter(...);
: ...
: }
: 我是用9806來改的
: 可能有些問題
:
如果這樣還是一連進站就斷線..,
提供一個方法:
io.c:
getdata()
:
:
if (prompt)
{
move(line, col);
clrtoeol();
outs(prompt);
x += strip_ansi(NULL,prompt,0);
}
if (dumb_term || !echo || echo==9)
{
len--;
clen = 0;
while ((ch = igetch()) != '\r')
[以下略]
然後問id和密碼的部份就用getdata(..., 9);就可以了
有的版本的getdata()多了一欄..反正就是把那個DOECHO換成9就對了
ps:這是用鋸箭法的處理方式,並非正解...如果要完全解決此問題
screen.c也要配合修正...不過這樣比較簡單:)