作者itoc (League), 信區: plan
標題[修正] 回水球的位置改回倒數第二行
時間2004/03/12 Fri 10:02:16 Updated: 2004/03/12
※ 引述《jal.bbs@bbs3.au.edu.tw (站上的工友弟弟)》之銘言:
> 因為站上user習慣回訊息在下方列,所以想改回到下面,
把回水球從 (0, 0) 改回 (b_lines - 1, 0),要改的部分有
1) vget(line, col, ...) 中的 line
2) 由於 save_foot() 只會有二行受到變動,所以不需 slp[3],只需 slp[2]
: bmw.c:bmw_edit()
int recver;
- screenline slp[3];
+ screenline slp[2];
char *userid, fpath[64];
FILE *fp;
...
...
for (;;)
{
int ch;
BMW *benz;
- ch = vget(0, 0, hint, bmw->msg, 62, GCARRY);
+ ch = vget(b_lines - 1, 0, hint, bmw->msg, 62, GCARRY);
: bmw.c:bmw_reply()
int max, display, tmpmode;
char buf[128];
UTMP *up;
BMW bmw;
- screenline slp[3];
+ screenline slp[2];
#ifdef BMW_DISPLAY
screenline slt[t_lines];
#endif
: visio.c:save_foot()
void
save_foot(slp)
screenline *slp;
{
int i;
- int lines[3] = {0, b_lines - 1, b_lines}; /* 儲存這三行 */
+ int lines[2] = {b_lines - 1, b_lines}; /* 儲存這二行 */
- for (i = 0; i < 3; i++)
+ for (i = 0; i < 2; i++)
{
move(lines[i], 0);
memcpy(slp + i, cur_slp, sizeof(screenline));
slp[i].smod = 0;
slp[i].emod = ANSILINELEN;/* Thor.990125:不論最後一次改到哪, 全部要繪上 */
slp[i].oldlen = ANSILINELEN;
slp[i].mode |= SL_MODIFIED;
}
}
: visio.c:restore_foot()
void
restore_foot(slp)
screenline *slp;
{
int i;
- int lines[3] = {0, b_lines - 1, b_lines}; /* 恢復這三行 */
+ int lines[2] = {b_lines - 1, b_lines}; /* 恢復這二行 */
- for (i = 0; i < 3; i++)
+ for (i = 0; i < 2; i++)
{
move(lines[i], 0);
memcpy(cur_slp, slp + i, sizeof(screenline));
}
refresh(); /* Thor.981222: 為防整screen重繪, 採用 refresh */
}
--
□ 本文章由 itoc 從 itoc.Dorm11.NCTU.edu.tw 發表