summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/proto.h1
-rw-r--r--mbbsd/bbs.c9
-rw-r--r--mbbsd/read.c6
3 files changed, 15 insertions, 1 deletions
diff --git a/include/proto.h b/include/proto.h
index 2c9b060e..e92082c7 100644
--- a/include/proto.h
+++ b/include/proto.h
@@ -120,6 +120,7 @@ int getuser(const char *userid, userec_t *xuser);
void setuserid(int num, const char *userid);
int searchuser(const char *userid, char *rightid);
int getbnum(const char *bname);
+void touchbpostnum(int bid, int delta);
void reset_board(int bid);
void touch_boards(void);
void addbrd_touchcache(void);
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index bfd3108c..e9b66a0f 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -452,7 +452,14 @@ do_crosspost(const char *brd, fileheader_t *postfile, const char *fpath)
postfile->filemode = FILE_LOCAL;
setbdir(genbuf, brd);
if (append_record(genbuf, &fh, sizeof(fileheader_t)) != -1) {
- touchbtotal(getbnum(brd));
+ if(strcmp(brd, ALLPOST) == 0)
+ {
+ /* quick update */
+ int bid = getbnum(ALLPOST);
+ touchbpostnum(bid, 1);
+ SHM->lastposttime[bid - 1] = now;
+ } else
+ touchbtotal(getbnum(brd));
}
}
static void
diff --git a/mbbsd/read.c b/mbbsd/read.c
index 02292db5..1629a9d1 100644
--- a/mbbsd/read.c
+++ b/mbbsd/read.c
@@ -627,6 +627,12 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
new_top = 0;
break;
+ /* add home(top entry) support? */
+ case KEY_HOME:
+ new_ln = 0;
+ new_top = 0;
+ break;
+
case KEY_END:
case '$':
new_ln = last_line;