diff options
author | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2002-05-25 11:33:43 +0800 |
---|---|---|
committer | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2002-05-25 11:33:43 +0800 |
commit | f2ac108f484ad739dc251bf0b1f43f29e6dfc3c7 (patch) | |
tree | cdcb970f8013d92e4b8b7955ec00a7bc044134c2 /mbbsd | |
parent | 3589d56d9f13ec16a4fb0b39415ee884fe2c384c (diff) | |
download | pttbbs-f2ac108f484ad739dc251bf0b1f43f29e6dfc3c7.tar pttbbs-f2ac108f484ad739dc251bf0b1f43f29e6dfc3c7.tar.gz pttbbs-f2ac108f484ad739dc251bf0b1f43f29e6dfc3c7.tar.bz2 pttbbs-f2ac108f484ad739dc251bf0b1f43f29e6dfc3c7.tar.lz pttbbs-f2ac108f484ad739dc251bf0b1f43f29e6dfc3c7.tar.xz pttbbs-f2ac108f484ad739dc251bf0b1f43f29e6dfc3c7.tar.zst pttbbs-f2ac108f484ad739dc251bf0b1f43f29e6dfc3c7.zip |
fix bug - pickup who I reject (fast user list)
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@212 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/talk.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/mbbsd/talk.c b/mbbsd/talk.c index cbbbe3df..73637afc 100644 --- a/mbbsd/talk.c +++ b/mbbsd/talk.c @@ -1,4 +1,4 @@ -/* $Id: talk.c,v 1.44 2002/05/25 00:58:13 in2 Exp $ */ +/* $Id: talk.c,v 1.45 2002/05/25 03:33:43 in2 Exp $ */ #include <stdio.h> #include <string.h> #include <errno.h> @@ -1527,12 +1527,13 @@ static void pickup_myfriend(pickup_t *friends, int *nGots, *myfriend = *friendme = 1; for( *nGots = i = 0 ; currutmp->friend_online[i] && i < MAX_FRIEND ; ++i ){ where = currutmp->friend_online[i] & 0xFFFFFF; - if( 0 <= where && where < MAX_ACTIVE && - (uentp = &utmpshm->uinfo[where]) && uentp->pid && - uentp != currutmp && + if( 0 <= where && where < MAX_ACTIVE && + (uentp = &utmpshm->uinfo[where]) && uentp->pid && + uentp != currutmp && isvisible_stat(currutmp, uentp, frstate = - currutmp->friend_online[i] >> 24) + currutmp->friend_online[i] >> 24) && + ( !(frstate & IRH) || ((frstate & IRH) && (frstate & IFH)) ) ){ friends[*nGots].ui = &utmpshm->uinfo[where]; friends[*nGots].uoffset = where; @@ -1751,9 +1752,15 @@ static void draw_pickup(int drawall, pickup_t *pickup, int pickup_way, } } -static void pickup_user(void) +static void userlist(void) { - + /* 使用者名單: + userlist() : main loop + draw_pickup() : show out screen + pickup() : generate THIS PAGE pickup list + pickup_maxpages : return max pages number of all list + pickup_myfriend : pickup friend (from friend_online) and sort + */ pickup_t currpickup[MAXPICKUP]; userinfo_t *uentp; static int show_mode = 0; @@ -2279,7 +2286,7 @@ int t_users(void) int stat0 = currstat; setutmpmode(LUSERS); - pickup_user(); + userlist(); currutmp->mode = mode0; currutmp->destuid = destuid0; currstat = stat0; |