summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-11-07 11:30:48 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-11-07 11:30:48 +0800
commit50180ef778c500ade0b2eaff448524130c2242e5 (patch)
tree2c34b21795c976d8ba6c7e0f3981e0d8c4ed7423
parentbc0da295327a9ab9c70bdb0fedb9c4426abcb9f8 (diff)
downloadpttbbs-50180ef778c500ade0b2eaff448524130c2242e5.tar
pttbbs-50180ef778c500ade0b2eaff448524130c2242e5.tar.gz
pttbbs-50180ef778c500ade0b2eaff448524130c2242e5.tar.bz2
pttbbs-50180ef778c500ade0b2eaff448524130c2242e5.tar.lz
pttbbs-50180ef778c500ade0b2eaff448524130c2242e5.tar.xz
pttbbs-50180ef778c500ade0b2eaff448524130c2242e5.tar.zst
pttbbs-50180ef778c500ade0b2eaff448524130c2242e5.zip
add digest check in D
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5221 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/mbbsd/bbs.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/pttbbs/mbbsd/bbs.c b/pttbbs/mbbsd/bbs.c
index 19a1677d..5303cbc5 100644
--- a/pttbbs/mbbsd/bbs.c
+++ b/pttbbs/mbbsd/bbs.c
@@ -3095,12 +3095,21 @@ del_range(int ent, const fileheader_t *fhdr, const char *direct,
int num1, num2, num, cdeleted = 0;
fileheader_t *recs = NULL;
int ret = 0;
- int check_mark = 1;
+ int check_mark = 1, check_digest = 0;
+ /* 有三種情況會進這裡, 信件, 看板, 精華區 */
+ // 檢查的方法是看 *direct:
+ // 'b' = 看板 boards/%c/%s/*
+ // 'm' = 精華區 man/.../* or man/boards/%c/%s/.../*
+ // 'h' = 信箱 home/%c/%s/* 或信箱精華區 home/%c/%s/man/.../*
+ int is_board = (*direct == 'b'),
+ is_home = (*direct == 'h'),
+ is_man = (*direct == 'm');
+
#ifdef SAFE_ARTICLE_DELETE
int use_safe_delete = 0;
- if (*direct == 'b') {
+ if (is_board) {
boardheader_t *bp = getbcache(currbid);
if(!(currmode & MODE_DIGEST) &&
bp->nuser >= SAFE_ARTICLE_DELETE_NUSER)
@@ -3108,8 +3117,6 @@ del_range(int ent, const fileheader_t *fhdr, const char *direct,
}
#endif
- /* 有三種情況會進這裡, 信件, 看板, 精華區 */
-
/* rocker.011018: 串接模式下還是不允許刪除比較好 */
if (currmode & MODE_SELECT) {
vmsg("請先回到正常模式後再進行刪除...");
@@ -3155,10 +3162,12 @@ del_range(int ent, const fileheader_t *fhdr, const char *direct,
num2, IDLEN, recs[num-1].owner, recs[num-1].title);
// HACK: warn if target is man.
- if (*direct == 'm') {
+ if (is_man) {
outs("(範圍內的子目錄會被自動跳過,請另行用小 d 刪除)\n");
// do not check mark in man
check_mark = 0;
+ } else if (is_board) {
+ check_digest = 1;
}
getdata(10, 0, msg_sure_ny, numstr, 3, LCECHO);
@@ -3181,6 +3190,9 @@ del_range(int ent, const fileheader_t *fhdr, const char *direct,
if (check_mark && fh->filemode & FILE_MARKED) {
bypass = "標記為 m 的項目";
+ } else if (check_digest && fh->filemode & FILE_DIGEST) {
+ /* 文摘 , FILE_DIGEST is used as REPLIED in mail menu.*/
+ bypass = "文摘";
} else {
char xfpath[PATHLEN];
setdirpath(xfpath, direct, fh->filename);