summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2002-05-25 11:33:43 +0800
committerin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2002-05-25 11:33:43 +0800
commitf2ac108f484ad739dc251bf0b1f43f29e6dfc3c7 (patch)
treecdcb970f8013d92e4b8b7955ec00a7bc044134c2
parent3589d56d9f13ec16a4fb0b39415ee884fe2c384c (diff)
downloadpttbbs-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
-rw-r--r--mbbsd/talk.c23
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;