diff options
Diffstat (limited to 'mbbsd/talk.c')
-rw-r--r-- | mbbsd/talk.c | 120 |
1 files changed, 60 insertions, 60 deletions
diff --git a/mbbsd/talk.c b/mbbsd/talk.c index e986b3a1..a57827fe 100644 --- a/mbbsd/talk.c +++ b/mbbsd/talk.c @@ -34,9 +34,9 @@ typedef struct pickup_t { #define PICKUP_WAYS 7 static char * const fcolor[11] = { - "", "\033[36m", "\033[32m", "\033[1;32m", - "\033[33m", "\033[1;33m", "\033[1;37m", "\033[1;37m", - "\033[31m", "\033[1;35m", "\033[1;36m" + "", ANSI_COLOR(36), ANSI_COLOR(32), ANSI_COLOR(1;32), + ANSI_COLOR(33), ANSI_COLOR(1;33), ANSI_COLOR(1;37), ANSI_COLOR(1;37), + ANSI_COLOR(31), ANSI_COLOR(1;35), ANSI_COLOR(1;36) }; static char save_page_requestor[40]; static char page_requestor[40]; @@ -419,7 +419,7 @@ my_query(const char *uident) prints("《文章篇數》%d篇\n", muser.numposts); #endif - prints("\033[1;33m《目前動態》%-28.28s\033[m", + prints(ANSI_COLOR(1;33) "《目前動態》%-28.28s" ANSI_RESET, (uentp && isvisible_stat(currutmp, uentp, fri_stat)) ? modestring(uentp, 0) : "不在站上"); @@ -458,7 +458,7 @@ water_scr(const water_t * tw, int which, char type) move(8 + which, 28); outc(' '); move(8 + which, 28); - prints("\033[1;37;45m %c %-14s \033[0m", + prints(ANSI_COLOR(1;37;45) " %c %-14s " ANSI_COLOR(0) "", tw->uin ? ' ' : 'x', tw->userid); for (i = 0; i < 5; ++i) { @@ -466,17 +466,17 @@ water_scr(const water_t * tw, int which, char type) outc(' '); move(16 + i, 4); if (tw->msg[(tw->top - i + 4) % 5].last_call_in[0] != 0) - prints("\033[0m \033[1;%d;44m★%-64s\033[0m \n", + prints(ANSI_COLOR(0) " " ANSI_COLOR(1;%d;44) "★%-64s" ANSI_COLOR(0) " \n", colors[i], tw->msg[(tw->top - i + 4) % 5].last_call_in); else - outs("\033[0m \n"); + outs(ANSI_COLOR(0) " \n"); } move(21, 4); outc(' '); move(21, 4); - prints("\033[0m \033[1;37;46m%-66s\033[0m \n", + prints(ANSI_COLOR(0) " " ANSI_COLOR(1;37;46) "%-66s" ANSI_COLOR(0) " \n", tw->msg[5].last_call_in); move(0, 0); @@ -484,17 +484,17 @@ water_scr(const water_t * tw, int which, char type) move(0, 0); #ifdef PLAY_ANGEL if (tw->msg[0].msgmode == MSGMODE_TOANGEL) - outs("\033[0m回答小主人:"); + outs(ANSI_COLOR(0) "回答小主人:"); else #endif - prints("\033[0m反擊 %s:", tw->userid); + prints(ANSI_COLOR(0) "反擊 %s:", tw->userid); clrtoeol(); move(0, strlen(tw->userid) + 6); } else { move(8 + which, 28); outs("123456789012345678901234567890"); move(8 + which, 28); - prints("\033[1;37;44m %c %-13s \033[0m", + prints(ANSI_COLOR(1;37;44) " %c %-13s " ANSI_COLOR(0) "", tw->uin ? ' ' : 'x', tw->userid); } @@ -520,7 +520,7 @@ my_write2(void) //init screen move(WB_OFO_USER_TOP, WB_OFO_USER_LEFT); - outs("\033[1;33;46m ↑ 水球反擊對象 ↓\033[0m"); + outs(ANSI_COLOR(1;33;46) " ↑ 水球反擊對象 ↓" ANSI_COLOR(0) ""); for (i = 0; i < WB_OFO_USER_HEIGHT;++i) if (swater[i] == NULL || swater[i]->pid == 0) break; @@ -532,11 +532,11 @@ my_write2(void) water_scr(swater[i], i, 0); } move(WB_OFO_MSG_TOP, WB_OFO_MSG_LEFT); - outs("\033[0m \033[1;35m◇\033[1;36m────────────────" - "─────────────────\033[1;35m◇\033[0m "); + outs(ANSI_COLOR(0) " " ANSI_COLOR(1;35) "◇" ANSI_COLOR(1;36) "────────────────" + "─────────────────" ANSI_COLOR(1;35) "◇" ANSI_COLOR(0) " "); move(WB_OFO_MSG_BOTTOM, WB_OFO_MSG_LEFT); - outs(" \033[1;35m◇\033[1;36m────────────────" - "─────────────────\033[1;35m◇\033[0m "); + outs(" " ANSI_COLOR(1;35) "◇" ANSI_COLOR(1;36) "────────────────" + "─────────────────" ANSI_COLOR(1;35) "◇" ANSI_COLOR(0) " "); water_scr(swater[0], 0, 1); refresh(); @@ -579,7 +579,7 @@ my_write2(void) } else msg[0] = 0; move(0, 0); - outs("\033[m"); + outs(ANSI_RESET); clrtoeol(); #ifndef PLAY_ANGEL snprintf(genbuf, sizeof(genbuf), "攻擊 %s:", tw->userid); @@ -769,7 +769,7 @@ my_write(pid_t pid, const char *prompt, const char *id, int flag, userinfo_t * p && he_reject_me(uin)) #endif ) { - outmsg("\033[1;33;41m糟糕! 對方防水了! \033[37m~>_<~\033[m"); + outmsg(ANSI_COLOR(1;33;41) "糟糕! 對方防水了! " ANSI_COLOR(37) "~>_<~" ANSI_RESET); } else { int write_pos = uin->msgcount; /* try to avoid race */ if ( write_pos < (MAX_MSGS - 1) ) { /* race here */ @@ -806,7 +806,7 @@ my_write(pid_t pid, const char *prompt, const char *id, int flag, userinfo_t * p #endif uin->pager = pager0; } else if (flag != WATERBALL_ALOHA) - outmsg("\033[1;33;41m糟糕! 對方不行了! (收到太多水球) \033[37m@_@\033[m"); + outmsg(ANSI_COLOR(1;33;41) "糟糕! 對方不行了! (收到太多水球) " ANSI_COLOR(37) "@_@" ANSI_RESET); if (uin->msgcount >= 1 && #ifdef NOKILLWATERBALL @@ -815,12 +815,12 @@ my_write(pid_t pid, const char *prompt, const char *id, int flag, userinfo_t * p (uin->pid <= 0 || kill(uin->pid, SIGUSR2) == -1) #endif && flag != WATERBALL_ALOHA) - outmsg("\033[1;33;41m糟糕! 沒打中! \033[37m~>_<~\033[m"); + outmsg(ANSI_COLOR(1;33;41) "糟糕! 沒打中! " ANSI_COLOR(37) "~>_<~" ANSI_RESET); else if (uin->msgcount == 1 && flag != WATERBALL_ALOHA) - outmsg("\033[1;33;44m水球砸過去了! \033[37m*^o^*\033[m"); + outmsg(ANSI_COLOR(1;33;44) "水球砸過去了! " ANSI_COLOR(37) "*^o^*" ANSI_RESET); else if (uin->msgcount > 1 && uin->msgcount < MAX_MSGS && flag != WATERBALL_ALOHA) - outmsg("\033[1;33;44m再補上一粒! \033[37m*^o^*\033[m"); + outmsg(ANSI_COLOR(1;33;44) "再補上一粒! " ANSI_COLOR(37) "*^o^*" ANSI_RESET); #if defined(NOKILLWATERBALL) && defined(PLAY_ANGEL) /* Questioning and answering should better deliver immediately. */ @@ -884,17 +884,17 @@ t_display_new(void) (swater[i - 1]->pid != swater[i - 1]->uin->pid || swater[i - 1]->userid[0] != swater[i - 1]->uin->userid[0])) swater[i - 1]->uin = (userinfo_t *) search_ulist_pid(swater[i - 1]->pid); - prints("%s%c%-13.13s\033[m", + prints("%s%c%-13.13s" ANSI_RESET, swater[i - 1] != water_which ? "" : - swater[i - 1]->uin ? "\033[1;33;47m" : - "\033[1;33;45m", + swater[i - 1]->uin ? ANSI_COLOR(1;33;47) : + ANSI_COLOR(1;33;45), !swater[i - 1]->uin ? '#' : ' ', swater[i - 1]->userid); } else outs(" "); else - prints("%s 全部 \033[m", - water_which == &water[0] ? "\033[1;33;47m " : + prints("%s 全部 " ANSI_RESET, + water_which == &water[0] ? ANSI_COLOR(1;33;47) " " : " " ); } @@ -909,13 +909,13 @@ t_display_new(void) move(i + (WATERMODE(WATER_ORIG) ? 2 : 3), 0); clrtoeol(); if (watermode - 1 != i) - prints("\033[1;33;46m %s \033[37;45m %s \033[m%*s", + prints(ANSI_COLOR(1;33;46) " %s " ANSI_COLOR(37;45) " %s " ANSI_RESET "%*s", water_which->msg[a].userid, water_which->msg[a].last_call_in, len, ""); else - prints("\033[1;44m>\033[1;33;47m%s " - "\033[37;45m %s \033[m%*s", + prints(ANSI_COLOR(1;44) ">" ANSI_COLOR(1;33;47) "%s " + ANSI_COLOR(37;45) " %s " ANSI_RESET "%*s", water_which->msg[a].userid, water_which->msg[a].last_call_in, len, ""); @@ -951,7 +951,7 @@ t_display(void) if (more(genbuf, YEA) != -1) { move(b_lines - 4, 0); clrtobot(); - outs("\033[1;33;45m★現在 Ptt提供創新的水球整理程式★\033[m\n" + outs(ANSI_COLOR(1;33;45) "★現在 Ptt提供創新的水球整理程式★" ANSI_RESET "\n" "您將水球存至信箱後, 在【郵件選單】該信件前按 u,\n" "系統即會將您的水球紀錄重新整理後寄送給您唷! \n"); getdata(b_lines - 1, 0, "清除(C) 移至備忘錄(M) 保留(R) (C/M/R)?[R]", @@ -1114,10 +1114,10 @@ do_talk_char(talkwin_t * twin, int ch, FILE *flog) trim(buf); if (*buf) fprintf(flog, "%s%s: %s%s\n", - (twin->eline == b_lines - 1) ? "\033[1;35m" : "", + (twin->eline == b_lines - 1) ? ANSI_COLOR(1;35) : "", (twin->eline == b_lines - 1) ? getuserid(currutmp->destuid) : cuser.userid, buf, - (ch == Ctrl('P')) ? "\033[37;45m(Up)\033[m" : "\033[m"); + (ch == Ctrl('P')) ? ANSI_COLOR(37;45) "(Up)" ANSI_RESET : ANSI_RESET); } static void @@ -1158,8 +1158,8 @@ do_talk(int fd) data[i] = '\0'; snprintf(mid_line, sizeof(mid_line), - "\033[1;46;37m 談天說地 \033[45m%s%s】" - " 與 %s%s\033[0m", data, genbuf, save_page_requestor, data); + ANSI_COLOR(1;46;37) " 談天說地 " ANSI_COLOR(45) "%s%s】" + " 與 %s%s" ANSI_COLOR(0) "", data, genbuf, save_page_requestor, data); memset(&mywin, 0, sizeof(mywin)); memset(&itswin, 0, sizeof(itswin)); @@ -1231,7 +1231,7 @@ do_talk(int fd) char ans[4]; int i; - fprintf(flog, "\n\033[33;44m離別畫面 [%s] ... \033[m\n", + fprintf(flog, "\n" ANSI_COLOR(33;44) "離別畫面 [%s] ... " ANSI_RESET "\n", Cdatelite(&now)); for (i = 0; i < scr_lns; i++) fprintf(flog, "%.*s\n", big_picture[i].len, big_picture[i].data); @@ -1248,7 +1248,7 @@ do_talk(int fd) mymail.filemode = FILE_READ ; strlcpy(mymail.owner, "[備.忘.錄]", sizeof(mymail.owner)); snprintf(mymail.title, sizeof(mymail.title), - "對話記錄 \033[1;36m(%s)\033[m", + "對話記錄 " ANSI_COLOR(1;36) "(%s)" ANSI_RESET, getuserid(currutmp->destuid)); sethomedir(title, cuser.userid); Rename(fpath, genbuf); @@ -1576,7 +1576,7 @@ t_showhelp(void) { clear(); - outs("\033[36m【 休閒聊天使用說明 】\033[m\n\n" + outs(ANSI_COLOR(36) "【 休閒聊天使用說明 】" ANSI_RESET "\n\n" "(←)(e) 結束離開 (h) 看使用說明\n" "(↑)/(↓)(n) 上下移動 (TAB) 切換排序方式\n" "(PgUp)(^B) 上頁選單 ( )(PgDn)(^F) 下頁選單\n" @@ -1589,7 +1589,7 @@ t_showhelp(void) "(N) 修改暱稱 (y) 我想找人聊天、下棋…\n"); if (HAS_PERM(PERM_PAGE)) { - outs("\n\033[36m【 交談專用鍵 】\033[m\n" + outs("\n" ANSI_COLOR(36) "【 交談專用鍵 】" ANSI_RESET "\n" "(→)(t)(Enter) 跟他/她聊天\n" "(w) 熱線 Call in\n" "(^W)切換水球方式 一般 / 進階 / 未來\n" @@ -1597,7 +1597,7 @@ t_showhelp(void) "(^R) 即時回應 (有人 Call in 你時)\n"); } if (HAS_PERM(PERM_SYSOP)) { - outs("\n\033[36m【 站長專用鍵 】\033[m\n\n"); + outs("\n" ANSI_COLOR(36) "【 站長專用鍵 】" ANSI_RESET "\n\n"); outs("(u)/(H) 設定使用者資料/切換隱形模式\n"); outs("(K) 把壞蛋踢出去\n"); #if defined(SHOWBOARD) && defined(DEBUG) @@ -1938,7 +1938,7 @@ draw_pickup(int drawall, pickup_t * pickup, int pickup_way, showtitle((cuser.uflag & FRIEND_FLAG) ? "好友列表" : "休閒聊天", BBSName); prints("\n" - "\033[7m %s P%c代號 %-17s%-17s%-13s%-10s\033[m\n", + ANSI_COLOR(7) " %s P%c代號 %-17s%-17s%-13s%-10s" ANSI_RESET "\n", show_uid ? "UID" : "No.", (HAS_PERM(PERM_SEECLOAK) || HAS_PERM(PERM_SYSOP)) ? 'C' : ' ', "暱稱", @@ -1947,15 +1947,15 @@ draw_pickup(int drawall, pickup_t * pickup, int pickup_way, show_pid ? " PID" : "心情 發呆" ); move(b_lines, 0); - outs("\033[31;47m(TAB/f)\033[30m排序/好友 \033[31m(t)\033[30m聊天 " - "\033[31m(a/d/o)\033[30m交友 \033[31m(q)\033[30m查詢 " - "\033[31m(w)\033[30m水球 \033[31m(m)\033[30m寄信 \033[31m(h)" - "\033[30m線上輔助 \033[m"); + outs(ANSI_COLOR(31;47) "(TAB/f)" ANSI_COLOR(30) "排序/好友 " ANSI_COLOR(31) "(t)" ANSI_COLOR(30) "聊天 " + ANSI_COLOR(31) "(a/d/o)" ANSI_COLOR(30) "交友 " ANSI_COLOR(31) "(q)" ANSI_COLOR(30) "查詢 " + ANSI_COLOR(31) "(w)" ANSI_COLOR(30) "水球 " ANSI_COLOR(31) "(m)" ANSI_COLOR(30) "寄信 " ANSI_COLOR(31) "(h)" + ANSI_COLOR(30) "線上輔助 " ANSI_RESET); } move(1, 0); - prints(" 排序:[%s] 上站人數:%-4d\033[1;32m我的朋友:%-3d" - "\033[33m與我為友:%-3d\033[36m板友:%-4d\033[31m壞人:" - "%-2d\033[m\n", + prints(" 排序:[%s] 上站人數:%-4d" ANSI_COLOR(1;32) "我的朋友:%-3d" + ANSI_COLOR(33) "與我為友:%-3d" ANSI_COLOR(36) "板友:%-4d" ANSI_COLOR(31) "壞人:" + "%-2d" ANSI_RESET "\n", msg_pickup_way[pickup_way], SHM->UTMPnumber, myfriend, friendme, currutmp->brc_id ? bfriend : 0, badfriend); for (i = 0, ch = page * nPickups + 1; i < nPickups; ++i, ++ch) { @@ -2002,7 +2002,7 @@ draw_pickup(int drawall, pickup_t * pickup, int pickup_way, else memcpy(mind, uentp->mind, 4); mind[4] = 0; - prints("%5d %c%c%s%-13s%-17.16s\033[m%-17.16s%-13.13s" + prints("%5d %c%c%s%-13s%-17.16s" ANSI_RESET "%-17.16s%-13.13s" "\33[33m%-4.4s\33[m%s\n", /* list number or uid */ @@ -2584,7 +2584,7 @@ userlist(void) reload_money(); if (ch > cuser.money) { - outs("\033[41m 現金不足~~\033[m"); + outs(ANSI_COLOR(41) " 現金不足~~" ANSI_RESET); } else { deumoney(uentp->uid, ch - give_tax(ch)); log_file(FN_MONEY, LOG_CREAT | LOG_VF, @@ -2906,7 +2906,7 @@ talkreply(void) prints(" (C) 請不要吵我好嗎?" " (D) 我要離站囉..下次再聊吧.......\n"); prints(" (E) 有事嗎?請先來信" - " (F) \033[1;33m我自己輸入理由好了...\033[m\n"); + " (F) " ANSI_COLOR(1;33) "我自己輸入理由好了..." ANSI_RESET "\n"); prints(" (1) %s?先拿100銀兩來" " (2) %s?先拿1000銀兩來..\n\n", sig_des[sig], sig_des[sig]); @@ -3102,18 +3102,18 @@ AngelNotOnline(){ clrtobot(); outs(not_online_message); outs("\n祂留言給你:\n"); - outs("\033[1;31;44m☉┬──────────────┤\033[37m" - "小天使留言\033[31m├──────────────┬☉\033[m\n"); - outs("\033[1;31m╭┤\033[32m 小天使 " - " \033[31m├╮\033[m\n"); + outs(ANSI_COLOR(1;31;44) "☉┬──────────────┤" ANSI_COLOR(37) "" + "小天使留言" ANSI_COLOR(31) "├──────────────┬☉" ANSI_RESET "\n"); + outs(ANSI_COLOR(1;31) "╭┤" ANSI_COLOR(32) " 小天使 " + " " ANSI_COLOR(31) "├╮" ANSI_RESET "\n"); while (fgets(buf, sizeof(buf), fp)) { chomp(buf); - prints("\033[1;31m│\033[m%-74.74s\033[1;31m│\033[m\n", buf); + prints(ANSI_COLOR(1;31) "│" ANSI_RESET "%-74.74s" ANSI_COLOR(1;31) "│" ANSI_RESET "\n", buf); } - outs("\033[1;31m╰┬──────────────────────" - "─────────────┬╯\033[m\n"); - outs("\033[1;31;44m☉┴─────────────────────" - "──────────────┴☉\033[m\n"); + outs(ANSI_COLOR(1;31) "╰┬──────────────────────" + "─────────────┬╯" ANSI_RESET "\n"); + outs(ANSI_COLOR(1;31;44) "☉┴─────────────────────" + "──────────────┴☉" ANSI_RESET "\n"); move(b_lines - 1, 0); outs("請先在新手板上尋找答案或按 Ctrl-P 發問"); |