summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-12-08 13:37:37 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-12-08 13:37:37 +0800
commit66c5b42504b2ee6465b72872a9ae402b4f3f1a4e (patch)
tree28d4b34efa4bbc553bc7c564975c0738f0e53732
parent51c0df9a677368c1cb72b60790749cea62e0b5a9 (diff)
downloadpttbbs-66c5b42504b2ee6465b72872a9ae402b4f3f1a4e.tar
pttbbs-66c5b42504b2ee6465b72872a9ae402b4f3f1a4e.tar.gz
pttbbs-66c5b42504b2ee6465b72872a9ae402b4f3f1a4e.tar.bz2
pttbbs-66c5b42504b2ee6465b72872a9ae402b4f3f1a4e.tar.lz
pttbbs-66c5b42504b2ee6465b72872a9ae402b4f3f1a4e.tar.xz
pttbbs-66c5b42504b2ee6465b72872a9ae402b4f3f1a4e.tar.zst
pttbbs-66c5b42504b2ee6465b72872a9ae402b4f3f1a4e.zip
revert Y (cancel recommend counter) function because some sysop need it.
added a log of who (and when) reset the counter. git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5283 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/mbbsd/bbs.c38
1 files changed, 28 insertions, 10 deletions
diff --git a/pttbbs/mbbsd/bbs.c b/pttbbs/mbbsd/bbs.c
index 721f9dbf..83c83709 100644
--- a/pttbbs/mbbsd/bbs.c
+++ b/pttbbs/mbbsd/bbs.c
@@ -2303,6 +2303,7 @@ do_limitedit(int ent, fileheader_t * fhdr, const char *direct)
&fhdr->multi.vote_limits.posts,
&fhdr->multi.vote_limits.badpost);
+ // TODO fix race condition here.
substitute_ref_record(direct, fhdr, ent);
vmsg("修改完成!");
return FULLUPDATE;
@@ -2571,6 +2572,7 @@ edit_title(int ent, fileheader_t * fhdr, const char *direct)
return FULLUPDATE;
}
*fhdr = tmpfhdr;
+ // TODO fix race condition here.
substitute_ref_record(direct, fhdr, ent);
}
}
@@ -2582,6 +2584,7 @@ solve_post(int ent, fileheader_t * fhdr, const char *direct)
{
if ((currmode & MODE_BOARD)) {
fhdr->filemode ^= FILE_SOLVED;
+ // TODO fix race condition here.
substitute_ref_record(direct, fhdr, ent);
check_locked(fhdr);
return PART_REDRAW;
@@ -2593,6 +2596,9 @@ solve_post(int ent, fileheader_t * fhdr, const char *direct)
static int
recommend_cancel(int ent, fileheader_t * fhdr, const char *direct)
{
+ char yn[5];
+ char fn[PATHLEN];
+
if (!(currmode & MODE_BOARD))
return DONOTHING;
@@ -2607,18 +2613,27 @@ recommend_cancel(int ent, fileheader_t * fhdr, const char *direct)
} else
#endif
{
- char yn[5], fn[PATHLEN];
-
- getdata(b_lines - 1, 0, "確定要劣推文 [y/N]? ", yn, 3, LCECHO);
- if (*yn != 'y')
- return FULLUPDATE;
-
- setbfile(fn, currboard, fhdr->filename);
- bad_comment(fn);
- return FULLUPDATE;
+ getdata(b_lines - 1, 0, "請問您要 (1) 推薦歸零 (2) 劣推文 [1/2]? ", yn, 3, LCECHO);
+ if (yn[0] == '2')
+ {
+ setbfile(fn, currboard, fhdr->filename);
+ bad_comment(fn);
+ return FULLUPDATE;
+ } else if (yn[0] != '1')
+ return FULLUPDATE;
}
#endif
- return DONOTHING;
+ getdata(b_lines - 1, 0, "確定要推薦歸零[y/N]? ", yn, 3, LCECHO);
+ if (yn[0] != 'y')
+ return FULLUPDATE;
+ fhdr->recommend = 0;
+ // TODO fix race condition here.
+ substitute_ref_record(direct, fhdr, ent);
+ setdirpath(fn, direct, fhdr->filename);
+ if (dashf(fn))
+ log_filef(fn, LOG_CREAT, "※%s 於 %s 將推薦值歸零\n", cuser.userid,
+ Cdatelite(&now));
+ return FULLUPDATE;
}
static int
@@ -3096,6 +3111,7 @@ mark_post(int ent, fileheader_t * fhdr, const char *direct)
return DONOTHING;
fhdr->filemode ^= FILE_MARKED;
+ // TODO fix race condition here.
substitute_ref_record(direct, fhdr, ent);
check_locked(fhdr);
return PART_REDRAW;
@@ -3563,6 +3579,7 @@ lock_post(int ent, fileheader_t * fhdr, const char *direct)
syncnow();
bp->SRexpire = now;
}
+ // TODO fix race condition here.
substitute_ref_record(direct, fhdr, ent);
post_policelog(currboard, fhdr->title, "鎖文", genbuf, fhdr->filename[0] == 'L' ? 1 : 0);
if (fhdr->filename[0] == 'L') {
@@ -4089,6 +4106,7 @@ good_post(int ent, fileheader_t * fhdr, const char *direct)
delta = 1000;
}
}
+ // TODO fix race condition here.
substitute_ref_record(direct, fhdr, ent);
return FULLUPDATE;
}