diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2008-02-15 23:04:56 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2008-02-15 23:04:56 +0800 |
commit | ad8b18c36c5fa594faca4fc0d5f844f212aadd58 (patch) | |
tree | e6f18320a726a4d2c9235ed96c40aa22377b667f | |
parent | e0724377611ce98cd99154e60d441b44614e165b (diff) | |
download | pttbbs-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
-rw-r--r-- | mbbsd/bbs.c | 15 |
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 { |