From 3c2d03bf002f773219b214e14431a4423c577aad Mon Sep 17 00:00:00 2001 From: scw Date: Sat, 12 Feb 2005 13:51:57 +0000 Subject: Complete groups as well as boards in m_board() git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2504 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- include/proto.h | 5 +++++ mbbsd/admin.c | 2 +- mbbsd/board.c | 1 + mbbsd/name.c | 9 +++++++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/proto.h b/include/proto.h index df2c372b..a84c2fbb 100644 --- a/include/proto.h +++ b/include/proto.h @@ -386,6 +386,7 @@ int generalnamecomplete(char *prompt, char *data, int len, size_t nmemb, gnc_getname_func getname); int completeboard_compar(int where, char *str, int len); int completeboard_permission(int where); +int complete_board_and_group_permission(int where); char *completeboard_getname(int where); int completeutmp_compar(int where, char *str, int len); int completeutmp_permission(int where); @@ -395,6 +396,10 @@ char *completeutmp_getname(int where); generalnamecomplete(MSG, BUF, sizeof(BUF), SHM->Bnumber, \ &completeboard_compar, &completeboard_permission, \ &completeboard_getname) +#define CompleteBoardAndGroup(MSG,BUF) \ + generalnamecomplete(MSG, BUF, sizeof(BUF), SHM->Bnumber, \ + &completeboard_compar, &complete_board_and_group_permission, \ + &completeboard_getname) #define CompleteOnlineUser(MSG,BUF) \ generalnamecomplete(MSG, BUF, sizeof(BUF), SHM->UTMPnumber, \ &completeutmp_compar, &completeutmp_permission, \ diff --git a/mbbsd/admin.c b/mbbsd/admin.c index 78a0c945..da7a79ca 100644 --- a/mbbsd/admin.c +++ b/mbbsd/admin.c @@ -629,7 +629,7 @@ m_board() char bname[32]; stand_title("看板設定"); - CompleteBoard(msg_bid, bname); + CompleteBoardAndGroup(msg_bid, bname); if (!*bname) return 0; m_mod_board(bname); diff --git a/mbbsd/board.c b/mbbsd/board.c index b5ab2413..219ca185 100644 --- a/mbbsd/board.c +++ b/mbbsd/board.c @@ -1055,6 +1055,7 @@ choose_board(int newflag) int bid; move(0, 0); clrtoeol(); + /* use CompleteBoard or CompleteBoardAndGroup ? */ CompleteBoard("\033[7m【 增加我的最愛 】\033[m\n" "請輸入欲加入的看板名稱(按空白鍵自動搜尋):", bname); diff --git a/mbbsd/name.c b/mbbsd/name.c index b657e854..60afab03 100644 --- a/mbbsd/name.c +++ b/mbbsd/name.c @@ -716,6 +716,15 @@ completeboard_permission(int where) !(bptr->brdattr & BRD_GROUPBOARD)); } +int +complete_board_and_group_permission(int where) +{ + boardheader_t *bptr = &bcache[SHM->bsorted[0][where]]; + return (!(bptr->brdattr & BRD_SYMBOLIC) && + (GROUPOP() || HasPerm(bptr))); + +} + char * completeboard_getname(int where) { -- cgit v1.2.3