diff options
author | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-04-13 00:20:16 +0800 |
---|---|---|
committer | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-04-13 00:20:16 +0800 |
commit | b48c6873e1cd4f8dcd0ce59f1c73a60a53818840 (patch) | |
tree | f80c228c0356253a20db012e869aeb11457edcfc | |
parent | 2f07023d62c096f4ad50b57c1ba21fca6f288177 (diff) | |
download | pttbbs-b48c6873e1cd4f8dcd0ce59f1c73a60a53818840.tar pttbbs-b48c6873e1cd4f8dcd0ce59f1c73a60a53818840.tar.gz pttbbs-b48c6873e1cd4f8dcd0ce59f1c73a60a53818840.tar.bz2 pttbbs-b48c6873e1cd4f8dcd0ce59f1c73a60a53818840.tar.lz pttbbs-b48c6873e1cd4f8dcd0ce59f1c73a60a53818840.tar.xz pttbbs-b48c6873e1cd4f8dcd0ce59f1c73a60a53818840.tar.zst pttbbs-b48c6873e1cd4f8dcd0ce59f1c73a60a53818840.zip |
push bottom fix
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1744 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | mbbsd/bbs.c | 2 | ||||
-rw-r--r-- | mbbsd/read.c | 17 |
2 files changed, 15 insertions, 4 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 2fe205e2..e9a1ca6d 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -2355,7 +2355,7 @@ push_bottom(int ent, fileheader_t * fhdr, char *direct) delete_record(buf, sizeof(fileheader_t), i+1); } } - //setbottomtotal(currbid); + setbottomtotal(currbid); touchdircache(currbid); return DIRCHANGED; } diff --git a/mbbsd/read.c b/mbbsd/read.c index e96a9449..eb6c69db 100644 --- a/mbbsd/read.c +++ b/mbbsd/read.c @@ -873,8 +873,8 @@ i_read(int cmdmode, char *direct, void (*dotitle) (), void (*doentry) (), onekey if (last_line < locmem->top_ln + p_lines) { if (bidcache > 0 && !(currmode & (MODE_SELECT | MODE_DIGEST))) { - bottom_line = getbtotal(currbid); - num = bottom_line+getbottomtotal(currbid); + bottom_line = getbtotal(currbid); + num = bottom_line+getbottomtotal(currbid); } else num = get_num_records(currdirect, FHSZ); @@ -902,13 +902,19 @@ i_read(int cmdmode, char *direct, void (*dotitle) (), void (*doentry) (), onekey entries = get_fileheader_cache(currbid, currdirect, headers, recbase, p_lines); else - entries = get_records(currdirect, headers, FHSZ, + entries += get_records(currdirect, headers, FHSZ, recbase, p_lines); } else #endif + { entries = get_records(currdirect, headers, FHSZ, recbase, p_lines); + if( entries>=0 && entries<p_lines && n_bottom) + entries +=get_records(directbottom,&headers[entries],FHSZ, + 1, p_lines-entries); + } + } @@ -997,8 +1003,13 @@ i_read(int cmdmode, char *direct, void (*dotitle) (), void (*doentry) (), onekey headers, recbase, p_lines); else #endif + { entries = get_records(currdirect, headers, FHSZ, recbase, p_lines); + if( entries>=0 && entries<p_lines && n_bottom) + entries+=get_records(directbottom,&headers[entries],FHSZ, + 1, p_lines-entries); + } } num = locmem->crs_ln - locmem->top_ln; |