diff options
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/fav.c | 6 | ||||
-rw-r--r-- | mbbsd/mbbsd.c | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/mbbsd/fav.c b/mbbsd/fav.c index 5c3ee44a..bd414ddf 100644 --- a/mbbsd/fav.c +++ b/mbbsd/fav.c @@ -308,7 +308,7 @@ static void rebuild_fav(fav_t *fp, int clean_invisible) int i, j, nData; fav_type_t *ft; - fav_number = 0; + fav_number -= get_data_number(fp); fp->lineID = fp->folderID = 0; fp->nLines = fp->nFolders = fp->nBoards = 0; nData = fp->DataTail; @@ -455,6 +455,7 @@ static void read_favrec(FILE *frp, fav_t *fp) fp->nAllocs = fp->DataTail + FAV_PRE_ALLOC; fp->lineID = fp->folderID = 0; fp->favh = (fav_type_t *)fav_malloc(sizeof(fav_type_t) * fp->nAllocs); + fav_number += get_data_number(fp); for(i = 0; i < fp->DataTail; i++){ ft = &fp->favh[i]; @@ -518,6 +519,7 @@ int fav_load(void) if ((frp = fopen(buf, "r")) == NULL) return -1; fp = (fav_t *)fav_malloc(sizeof(fav_t)); + fav_number = 0; read_favrec(frp, fp); fav_stack_push_fav(fp); fclose(frp); @@ -696,7 +698,7 @@ fav_type_t *getadmtag(short bid) fav_type_t *ft; for (i = 0; i < fp->DataTail; i++) { ft = &fp->favh[i]; - if (cast_board(ft)->bid == bid && is_set_attr(ft, FAVH_ADM_TAG)) + if (get_item_type(ft) == FAVT_BOARD && cast_board(ft)->bid == bid && is_set_attr(ft, FAVH_ADM_TAG)) return ft; } return NULL; diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index cd8250c8..de9e42a4 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -817,6 +817,7 @@ setup_utmp(int mode) getnewutmpent(&uinfo); SHM->UTMPneedsort = 1; + // XXX 不用每 20 才檢查吧 if (!(cuser.numlogins % 20) && cuser.userlevel & PERM_BM) check_BM(); /* Ptt 自動取下離職板主權力 */ #ifndef _BBS_UTIL_C_ |