summaryrefslogtreecommitdiffstats
path: root/mbbsd/friend.c
diff options
context:
space:
mode:
authorvictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-08-28 10:27:47 +0800
committervictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-08-28 10:27:47 +0800
commit3f325a1c7fb12aad2ea4a9ccf71ae200aa8e96a2 (patch)
tree3d55a433ee337864ea66c0cce3bb3ee0f11e8bd9 /mbbsd/friend.c
parent34e6df5540eb3bc2b36b3c69c611a1441effb6eb (diff)
downloadpttbbs-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.c59
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();