From ad8b18c36c5fa594faca4fc0d5f844f212aadd58 Mon Sep 17 00:00:00 2001 From: piaip Date: Fri, 15 Feb 2008 15:04:56 +0000 Subject: - hide restricted board names when cross-posting (suggested by iamori@ptt1) git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3922 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'mbbsd') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 1f03f831..8802699a 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -1642,6 +1642,17 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct) #define UPDATE_USEREC (currmode |= MODE_DIRTY) +static int +cp_IsHiddenBoard(boardheader_t *bp) +{ + // rules: see HasBoardPerm(). + if ((bp->brdattr & BRD_HIDE) && (bp->brdattr & BRD_POSTMASK)) + return 1; + if (bp->level && !(bp->brdattr & BRD_POSTMASK)) + return 1; + return 0; +} + static int cross_post(int ent, fileheader_t * fhdr, const char *direct) { @@ -1790,7 +1801,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) write_header(xptr, save_title); currboard = save_currboard; - if ((bp->brdattr & BRD_HIDE) && (bp->brdattr & BRD_POSTMASK)) + if (cp_IsHiddenBoard(bp)) { /* invisible board */ fprintf(xptr, "※ [本文轉錄自某隱形看板]\n\n"); @@ -1816,7 +1827,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) assert(0<=bid-1 && bid-1brdattr & BRD_HIDE) && (bp->brdattr & BRD_POSTMASK)) + if (cp_IsHiddenBoard(bp)) { strcpy(bname, "某隱形看板"); } else { -- cgit v1.2.3