diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2011-04-26 13:00:45 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2011-04-26 13:00:45 +0800 |
commit | 448533fb24e4d607721f67bd7eae2d7cc944f79e (patch) | |
tree | 5eb188a8ad2088dc5b83fa8e5f749d7270a3983e | |
parent | 1a6e95aa6c65af3da7d14476373d8cc28b795980 (diff) | |
download | pttbbs-448533fb24e4d607721f67bd7eae2d7cc944f79e.tar pttbbs-448533fb24e4d607721f67bd7eae2d7cc944f79e.tar.gz pttbbs-448533fb24e4d607721f67bd7eae2d7cc944f79e.tar.bz2 pttbbs-448533fb24e4d607721f67bd7eae2d7cc944f79e.tar.lz pttbbs-448533fb24e4d607721f67bd7eae2d7cc944f79e.tar.xz pttbbs-448533fb24e4d607721f67bd7eae2d7cc944f79e.tar.zst pttbbs-448533fb24e4d607721f67bd7eae2d7cc944f79e.zip |
when assigning "badpost", never give default values because we can't go back.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5344 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/mbbsd/assess.c | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/pttbbs/mbbsd/assess.c b/pttbbs/mbbsd/assess.c index 31bf9bca..10a138df 100644 --- a/pttbbs/mbbsd/assess.c +++ b/pttbbs/mbbsd/assess.c @@ -54,15 +54,20 @@ int assign_badpost(const char *userid, fileheader_t *fhdr, clrtobot(); for (i = 0; i < DIM(badpost_reason); i++) prints("%d.%s ", i + 1, badpost_reason[i]); - - prints("%d.%s", i + 1, "其他"); - getdata(b_lines - 1, 0, "請選擇[0:取消劣文]:", genbuf, 3, LCECHO); - i = genbuf[0] - '1'; - if (i < 0 || i > DIM(badpost_reason)) - { - vmsg("取消設定劣文。"); - return -1; - } + prints("%d.%s ", i + 1, "其他"); + prints("0.取消劣文 "); + do { + getdata(b_lines - 1, 0, "請選擇: ", genbuf, 2, NUMECHO); + i = genbuf[0] - '1'; + if (i == -1) { + vmsg("取消設定劣文。"); + return -1; + } + if (i < 0 || i > DIM(badpost_reason)) + bell(); + else + break; + } while (1); if (i < DIM(badpost_reason)) sprintf(genbuf,"劣%s文退回(%s)", comment ? "推" : "", badpost_reason[i]); @@ -71,13 +76,15 @@ int assign_badpost(const char *userid, fileheader_t *fhdr, char *s = genbuf; strcpy(genbuf, comment ? "劣推文退回(" : "劣文退回("); s += strlen(genbuf); - getdata_buf(b_lines, 0, "請輸入原因", s, 50, DOECHO); - // 對於 comment 目前可以重來,但非comment 文直接刪掉所以沒法 cancel - if (!*s && comment) - { - vmsg("取消設定劣文。"); - return -1; - } + while (!getdata_buf(b_lines, 0, "請輸入原因", s, 50, DOECHO)) { + // 對於 comment 目前可以重來,但非comment 文直接刪掉所以沒法 cancel + if (comment) { + vmsg("取消設定劣文。"); + return -1; + } + bell(); + continue; + } strcat(genbuf,")"); } |