diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2007-12-17 16:25:17 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2007-12-17 16:25:17 +0800 |
commit | 3fb29022e04342c0a6c9112d578f44ae736c7e00 (patch) | |
tree | 11bf2ea06ef659624c15ce408362c88b44ce97fc /mbbsd/friend.c | |
parent | d023f75854cf77c29a1d2b52635bab90dc370fa1 (diff) | |
download | pttbbs-3fb29022e04342c0a6c9112d578f44ae736c7e00.tar pttbbs-3fb29022e04342c0a6c9112d578f44ae736c7e00.tar.gz pttbbs-3fb29022e04342c0a6c9112d578f44ae736c7e00.tar.bz2 pttbbs-3fb29022e04342c0a6c9112d578f44ae736c7e00.tar.lz pttbbs-3fb29022e04342c0a6c9112d578f44ae736c7e00.tar.xz pttbbs-3fb29022e04342c0a6c9112d578f44ae736c7e00.tar.zst pttbbs-3fb29022e04342c0a6c9112d578f44ae736c7e00.zip |
- add "fix aloha" for users
- general message finetune
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3701 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/friend.c')
-rw-r--r-- | mbbsd/friend.c | 73 |
1 files changed, 58 insertions, 15 deletions
diff --git a/mbbsd/friend.c b/mbbsd/friend.c index a3e77f0d..53208cbc 100644 --- a/mbbsd/friend.c +++ b/mbbsd/friend.c @@ -200,9 +200,10 @@ friend_append(int type, int count) static int delete_friend_from_file(const char *file, const char *string, int case_sensitive) { - FILE *fp, *nfp = NULL; - char fnew[80]; - char genbuf[STRLEN + 1]; + FILE *fp = NULL, *nfp = NULL; + char fnew[PATHLEN]; + char genbuf[STRLEN + 1]; + int ret = 0; sprintf(fnew, "%s.%3.3X", file, (unsigned int)(random() & 0xFFF)); if ((fp = fopen(file, "r")) && (nfp = fopen(fnew, "w"))) { @@ -213,6 +214,8 @@ delete_friend_from_file(const char *file, const char *string, int case_sensitiv if (((case_sensitive && strcmp(buf, string)) || (!case_sensitive && strcasecmp(buf, string)))) fputs(genbuf, nfp); + else + ret = 1; } Rename(fnew, file); } @@ -220,7 +223,7 @@ delete_friend_from_file(const char *file, const char *string, int case_sensitiv fclose(fp); if(nfp) fclose(nfp); - return 0; + return ret; } void @@ -234,17 +237,9 @@ friend_delete(const char *uident, int type) static void delete_user_friend(const char *uident, const char *thefriend, int type) { - char fn[80]; -#if 0 - if (type == FRIEND_ALOHA) { -#endif - sethomefile(fn, uident, "aloha"); - delete_friend_from_file(fn, thefriend, 0); -#if 0 - } - else { - } -#endif + char fn[PATHLEN]; + sethomefile(fn, uident, "aloha"); + delete_friend_from_file(fn, thefriend, 0); } void @@ -525,3 +520,51 @@ t_reject(void) friend_edit(FRIEND_REJECT); return 0; } + +int +t_fix_aloha() +{ + char xid[IDLEN+1] = ""; + char fn[PATHLEN] = ""; + + clear(); + stand_title("修正上站通知"); + + outs("\n\n▲如果你遇到有人沒在你的上站通知名單內但又會一直丟水球給你,\n" + " 請輸入他的 ID。\n\n"); + + move(1, 0); + usercomplete("有誰不在名單內又會送上站通知給您呢? ", xid); + + if (!xid[0]) + { + vmsg("修正結束。"); + return 0; + } + + // check by xid + move(5, 0); + outs("檢查中...\n"); + + // xid in my override list? + setuserfile(fn, "alohaed"); + if (belong(fn, xid)) + { + prints(ANSI_COLOR(1;32) "[%s] 確實在你的上站通知名單內。" + "請編輯 [上站通知名單]。" ANSI_RESET "\n", xid); + vmsg("不需修正。"); + return 0; + } + + sethomefile(fn, xid, "aloha"); + if (delete_friend_from_file(fn, cuser.userid, 0)) + { + outs(ANSI_COLOR(1;33) "已找到錯誤並修復完成。" ANSI_RESET "\n"); + } else { + outs(ANSI_COLOR(1;31) "找不到錯誤... 打錯 ID 了?" ANSI_RESET "\n"); + } + + vmsg("若上站通知錯誤仍持續發生請通知站方處理。"); + return 0; +} + |