summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-04-13 00:20:16 +0800
committerptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-04-13 00:20:16 +0800
commitb48c6873e1cd4f8dcd0ce59f1c73a60a53818840 (patch)
treef80c228c0356253a20db012e869aeb11457edcfc
parent2f07023d62c096f4ad50b57c1ba21fca6f288177 (diff)
downloadpttbbs-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.c2
-rw-r--r--mbbsd/read.c17
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;