summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2011-04-26 13:00:45 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2011-04-26 13:00:45 +0800
commit448533fb24e4d607721f67bd7eae2d7cc944f79e (patch)
tree5eb188a8ad2088dc5b83fa8e5f749d7270a3983e
parent1a6e95aa6c65af3da7d14476373d8cc28b795980 (diff)
downloadpttbbs-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.c39
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,")");
}