From 6afda685033a3b0b51e565c16925acf578295df5 Mon Sep 17 00:00:00 2001 From: piaip Date: Sat, 12 Apr 2008 17:37:50 +0000 Subject: - board: add group search for 's'. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4150 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/board.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'mbbsd/board.c') diff --git a/mbbsd/board.c b/mbbsd/board.c index b9fcdbf7..193fe04c 100644 --- a/mbbsd/board.c +++ b/mbbsd/board.c @@ -94,6 +94,8 @@ int enter_board(const char *boardname) bh = getbcache(bid); if (!HasBoardPerm(bh)) return -2; + if (IS_GROUP(bh)) + return -1; strlcpy(bname, bh->brdname, sizeof(bname)); if (bname[0] == '\0') @@ -1548,21 +1550,25 @@ choose_board(int newflag) break; case 's': { - // XXX TODO - // 現在這樣搜不到群組... - // - // try global search instead. - int trysearch = ReadSelect(); - // restore my mode - setutmpmode(newflag ? READNEW : READBRD); + char bname[IDLEN*2]; + move(0, 0); + clrtoeol(); + CompleteBoardAndGroup(MSG_SELECT_BOARD, bname); // force refresh head = -1; - // try to match cursor if we can. - if (trysearch && currboard) + if (!*bname) + break; + // try to search board + if ((tmp = search_board(bname)) != -1) { - if ((tmp = search_board(currboard)) != -1) - num = tmp; + num = tmp; + break; } + // try to enter board directly. + if(enter_board(bname) >= 0) + Read(); + // restore my mode + setutmpmode(newflag ? READNEW : READBRD); } break; -- cgit v1.2.3