作者itoc, 信區: itoc
標題[修正] talk.c 聊天時連續按二次 Ctrl-C 才離開
時間02/10/17
作者: itoc (拯救一個靈魂) 看板: plan
標題: [修正] talk.c 聊天時連續按二次 Ctrl-C 才離開
時間: Sat Jul 20 01:10:36 2002 Updated: 2002/10/17
※ 引述《tbp.bbs@xeon.tfcis.org (tbp)》之銘言:
> 兩人聊天時
> 如何修改才能讓第一次按^C為警告
> 再按一次^C才退出呢
: talk.c:talk_speak()
static void
talk_speak(fd)
int fd;
{
talk_win mywin, itswin;
uschar data[80];
char buf[80];
int i, ch;
+ int ctrlc;
...
...
+ ctrlc = 0; /* 1:上一鍵是 Ctrl-C 或 Ctrl-D */
for (;;)
{
ch = vkey();
+ if (ch == Ctrl('D') || ch == Ctrl('C'))
+ {
+ if (ctrlc) /* 連續按二次 Ctrl-C 或 Ctrl-D 離開 */
+ {
+ break;
+ }
+ else /* 第一次按 Ctrl-C 或 Ctrl-D */
+ {
+ ctrlc = 1;
+ continue;
+ }
+ }
+ else
+ {
+ ctrlc = 0;
+ }
...
...
- if (ch == Ctrl('D') || ch == Ctrl('C'))
- break;
...
...
: theme.h
#ifdef HAVE_GAME
#define FOOTER_TALK \
COLOR1 " 交談模式 " COLOR2 " (^O)對奕 (連續二次^C,^D)結束交談 (^T)呼叫器 (^Z)快捷列表 (^G)嗶嗶 \033[m"
#else
#define FOOTER_TALK \
COLOR1 " 交談模式 " COLOR2 " (連續二次^C,^D)結束交談 (^T)呼叫器 (^Z)快捷列表 (^G)嗶嗶 (^Y)清除 \033[m"
#endif
--
應該是這樣,沒試過
--
□ 本文章由 itoc 從 itoc.Dorm-GD2.NCTU.edu.tw 發表精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻