diff options
author | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-08-28 10:27:47 +0800 |
---|---|---|
committer | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-08-28 10:27:47 +0800 |
commit | 3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2 (patch) | |
tree | 3d55a433ee337864ea66c0cce3bb3ee0f11e8bd9 /mbbsd/friend.c | |
parent | 34e6df5540eb3bc2b36b3c69c611a1441effb6eb (diff) | |
download | pttbbs-3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2.tar pttbbs-3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2.tar.gz pttbbs-3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2.tar.bz2 pttbbs-3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2.tar.lz pttbbs-3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2.tar.xz pttbbs-3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2.tar.zst pttbbs-3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2.zip |
It's not necessary to reload friend and eject list at the same time.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1134 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/friend.c')
-rw-r--r-- | mbbsd/friend.c | 59 |
1 files changed, 32 insertions, 27 deletions
diff --git a/mbbsd/friend.c b/mbbsd/friend.c index 127f9f5d..23d5f85f 100644 --- a/mbbsd/friend.c +++ b/mbbsd/friend.c @@ -1,4 +1,4 @@ -/* $Id: friend.c,v 1.19 2003/05/18 07:31:09 in2 Exp $ */ +/* $Id$ */ #include "bbs.h" /* ------------------------------------- */ @@ -258,7 +258,7 @@ friend_editdesc(char *uident, int type) } void -friend_load() +friend_load(int type) { FILE *fp; int myfriends[MAX_FRIEND]; @@ -266,33 +266,38 @@ friend_load() int friendcount, rejectedcount; char genbuf[200]; - memset(myfriends, 0, sizeof(myfriends)); - friendcount = 0; - setuserfile(genbuf, fn_overrides); - if ((fp = fopen(genbuf, "r"))) { - int unum; - - while (fgets(genbuf, STRLEN, fp) && friendcount < MAX_FRIEND - 1) - if (strtok(genbuf, str_space)) - if ((unum = searchuser(genbuf))) - myfriends[friendcount++] = unum; - fclose(fp); + if (type & FRIEND_OVERRIDE) { + memset(myfriends, 0, sizeof(myfriends)); + friendcount = 0; + setuserfile(genbuf, fn_overrides); + if ((fp = fopen(genbuf, "r"))) { + int unum; + + while (fgets(genbuf, STRLEN, fp) && friendcount < MAX_FRIEND - 1) + if (strtok(genbuf, str_space)) + if ((unum = searchuser(genbuf))) + myfriends[friendcount++] = unum; + fclose(fp); + } + memcpy(currutmp->friend, myfriends, sizeof(myfriends)); } - memcpy(currutmp->friend, myfriends, sizeof(myfriends)); - - memset(myrejects, 0, sizeof(myrejects)); - rejectedcount = 0; - setuserfile(genbuf, fn_reject); - if ((fp = fopen(genbuf, "r"))) { - int unum; - - while (fgets(genbuf, STRLEN, fp) && rejectedcount < MAX_REJECT - 1) - if (strtok(genbuf, str_space)) - if ((unum = searchuser(genbuf))) - myrejects[rejectedcount++] = unum; - fclose(fp); + + if (type & FRIEND_EJECT) { + memset(myrejects, 0, sizeof(myrejects)); + rejectedcount = 0; + setuserfile(genbuf, fn_reject); + if ((fp = fopen(genbuf, "r"))) { + int unum; + + while (fgets(genbuf, STRLEN, fp) && rejectedcount < MAX_REJECT - 1) + if (strtok(genbuf, str_space)) + if ((unum = searchuser(genbuf))) + myrejects[rejectedcount++] = unum; + fclose(fp); + } + memcpy(currutmp->reject, myrejects, sizeof(myrejects)); } - memcpy(currutmp->reject, myrejects, sizeof(myrejects)); + if (currutmp->friendtotal) logout_friend_online(currutmp); login_friend_online(); |