summaryrefslogtreecommitdiffstats
path: root/mbbsd/bbs.c
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-02-15 23:04:56 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-02-15 23:04:56 +0800
commitad8b18c36c5fa594faca4fc0d5f844f212aadd58 (patch)
treee6f18320a726a4d2c9235ed96c40aa22377b667f /mbbsd/bbs.c
parente0724377611ce98cd99154e60d441b44614e165b (diff)
downloadpttbbs-ad8b18c36c5fa594faca4fc0d5f844f212aadd58.tar
pttbbs-ad8b18c36c5fa594faca4fc0d5f844f212aadd58.tar.gz
pttbbs-ad8b18c36c5fa594faca4fc0d5f844f212aadd58.tar.bz2
pttbbs-ad8b18c36c5fa594faca4fc0d5f844f212aadd58.tar.lz
pttbbs-ad8b18c36c5fa594faca4fc0d5f844f212aadd58.tar.xz
pttbbs-ad8b18c36c5fa594faca4fc0d5f844f212aadd58.tar.zst
pttbbs-ad8b18c36c5fa594faca4fc0d5f844f212aadd58.zip
- 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
Diffstat (limited to 'mbbsd/bbs.c')
-rw-r--r--mbbsd/bbs.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index 1f03f831..8802699a 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -1643,6 +1643,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)
{
char xboard[20], fname[80], xfpath[80], xtitle[80];
@@ -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-1<MAX_BOARD);
bp = getbcache(bid);
- if ((bp->brdattr & BRD_HIDE) && (bp->brdattr & BRD_POSTMASK))
+ if (cp_IsHiddenBoard(bp))
{
strcpy(bname, "某隱形看板");
} else {