diff options
author | wens <wens@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2010-11-21 09:12:34 +0800 |
---|---|---|
committer | wens <wens@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2010-11-21 09:12:34 +0800 |
commit | 6f3ffa7fc84136baae1a76c039682ddd3c68599b (patch) | |
tree | 03b1a046c64db7238b8391997d514c672a27faa2 | |
parent | a7394787065c4fb2463412d3fec77c8b61c354b0 (diff) | |
download | pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.gz pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.bz2 pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.lz pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.xz pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.zst pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.zip |
Use macro to make code look better
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5271 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/daemon/boardd/boardd.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/pttbbs/daemon/boardd/boardd.c b/pttbbs/daemon/boardd/boardd.c index 1c26abfa..e731c150 100644 --- a/pttbbs/daemon/boardd/boardd.c +++ b/pttbbs/daemon/boardd/boardd.c @@ -71,6 +71,9 @@ void cb_endconn(struct bufferevent *bufev, short what, void *arg); // helper function +#define BOARD_HIDDEN(bptr) (bptr->brdattr & (BRD_HIDE | BRD_TOP) || \ + (bptr->level & ~(PERM_BASIC|PERM_CHAT|PERM_PAGE|PERM_POST|PERM_LOGINOK) && \ + !(bptr->brdattr & BRD_POSTMASK))) void answer_key(const char *key, int keylen, struct evbuffer *buf) { char *data, *p; @@ -87,17 +90,13 @@ void answer_key(const char *key, int keylen, struct evbuffer *buf) p++; bptr = getbcache(bid); - if (!bptr->brdname[0] || bptr->brdattr & (BRD_HIDE | BRD_TOP) || - (bptr->level & ~(PERM_BASIC|PERM_CHAT|PERM_PAGE|PERM_POST|PERM_LOGINOK) && - !(bptr->brdattr & BRD_POSTMASK))) + if (!bptr->brdname[0] || BOARD_HIDDEN(bptr)) return; if (strncmp(p, "isboard", 7) == 0) data = (bptr->brdattr & BRD_GROUPBOARD) ? "0" : "1"; else if (strncmp(p, "hidden", 6) == 0) - data = (bptr->brdattr & (BRD_HIDE | BRD_TOP) || - (bptr->level & ~(PERM_BASIC|PERM_CHAT|PERM_PAGE|PERM_POST|PERM_LOGINOK) && - !(bptr->brdattr & BRD_POSTMASK))) ? "1" : "0"; + data = BOARD_HIDDEN(bptr) ? "1" : "0"; else if (strncmp(p, "brdname", 7) == 0) data = bptr->brdname; else if (strncmp(p, "over18", 6) == 0) @@ -126,9 +125,7 @@ void answer_key(const char *key, int keylen, struct evbuffer *buf) bid = getbnum(key + 6); bptr = getbcache(bid); - if (!bptr->brdname[0] || bptr->brdattr & (BRD_HIDE | BRD_TOP) || - (bptr->level && !(bptr->brdattr & BRD_POSTMASK) && - (bptr->level & ~(PERM_BASIC|PERM_CHAT|PERM_PAGE|PERM_POST|PERM_LOGINOK)))) + if (!bptr->brdname[0] || BOARD_HIDDEN(bptr)) return; snprintf(databuf, sizeof(databuf), "%d", bid); |