diff options
author | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-04-08 05:46:10 +0800 |
---|---|---|
committer | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-04-08 05:46:10 +0800 |
commit | 1978b28e64d69265501bf7bb61a5396d5b140d8c (patch) | |
tree | 3afdaf7bbd5934c144646b8899e8dc3b25375b94 | |
parent | e083479d8a0ae78b774767e9774d52da6f8f37ec (diff) | |
download | pttbbs-1978b28e64d69265501bf7bb61a5396d5b140d8c.tar pttbbs-1978b28e64d69265501bf7bb61a5396d5b140d8c.tar.gz pttbbs-1978b28e64d69265501bf7bb61a5396d5b140d8c.tar.bz2 pttbbs-1978b28e64d69265501bf7bb61a5396d5b140d8c.tar.lz pttbbs-1978b28e64d69265501bf7bb61a5396d5b140d8c.tar.xz pttbbs-1978b28e64d69265501bf7bb61a5396d5b140d8c.tar.zst pttbbs-1978b28e64d69265501bf7bb61a5396d5b140d8c.zip |
push_bottom fix
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1720 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | mbbsd/bbs.c | 6 | ||||
-rw-r--r-- | mbbsd/cache.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 01af29c6..1dc69c18 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -173,7 +173,9 @@ readdoent(int num, fileheader_t * ent) if ((currmode & MODE_BOARD) && (ent->filemode & FILE_DIGEST)) type = (type == ' ') ? '*' : '#'; else if (currmode & MODE_BOARD || HAS_PERM(PERM_LOGINOK)) { - if (ent->filemode & FILE_MARKED) + if (ent->filemode & FILE_BOTTOM) + type = '_' ; + else if (ent->filemode & FILE_MARKED) type = (type == ' ') ? 'm' : 'M'; else if (TagNum && !Tagger(atoi(ent->filename + 2), 0, TAG_NIN)) @@ -2352,7 +2354,7 @@ push_bottom(int ent, fileheader_t * fhdr, char *direct) } setbottomtotal(currbid); substitute_record(direct, fhdr, sizeof(fileheader_t), ent); - return READ_REDRAW; + return DIRCHANGED; } static int diff --git a/mbbsd/cache.c b/mbbsd/cache.c index e76110b8..494f3f27 100644 --- a/mbbsd/cache.c +++ b/mbbsd/cache.c @@ -523,6 +523,11 @@ load_fileheader_cache(int bid, char *direct) int num = getbtotal(bid), n_bottom = getbottomtotal(bid); int n = num - DIRCACHESIZE + n_bottom + 1; int dirsize = DIRCACHESIZE-n_bottom; + if (n<1) + { + n=1; + dirsize=num; + } if (SHM->Bbusystate != 1 && COMMON_TIME - SHM->busystate_b[bid - 1] >= 10) { SHM->busystate_b[bid - 1] = COMMON_TIME; if(n_bottom) @@ -533,7 +538,7 @@ load_fileheader_cache(int bid, char *direct) sizeof(fileheader_t), 1, n_bottom); } get_records(direct, SHM->dircache[bid - 1], - sizeof(fileheader_t), n < 1 ? 1 : n, dirsize); + sizeof(fileheader_t), n, dirsize); SHM->busystate_b[bid - 1] = 0; } else { safe_sleep(1); |