diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2012-01-19 12:20:30 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2012-01-19 12:20:30 +0800 |
commit | d5aebb85da5e7cb207261f323353dc5d52b63a34 (patch) | |
tree | 35800aa9e2480b3ea6be31fbae11ac306261a69d | |
parent | d42e85a1888aedc01523aa130d19edb6c644300c (diff) | |
download | pttbbs-d5aebb85da5e7cb207261f323353dc5d52b63a34.tar pttbbs-d5aebb85da5e7cb207261f323353dc5d52b63a34.tar.gz pttbbs-d5aebb85da5e7cb207261f323353dc5d52b63a34.tar.bz2 pttbbs-d5aebb85da5e7cb207261f323353dc5d52b63a34.tar.lz pttbbs-d5aebb85da5e7cb207261f323353dc5d52b63a34.tar.xz pttbbs-d5aebb85da5e7cb207261f323353dc5d52b63a34.tar.zst pttbbs-d5aebb85da5e7cb207261f323353dc5d52b63a34.zip |
attempt to find out why failed loading fav.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5519 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/mbbsd/board.c | 23 | ||||
-rw-r--r-- | pttbbs/mbbsd/fav.c | 1 |
2 files changed, 21 insertions, 3 deletions
diff --git a/pttbbs/mbbsd/board.c b/pttbbs/mbbsd/board.c index 6141089a..d3ed77d9 100644 --- a/pttbbs/mbbsd/board.c +++ b/pttbbs/mbbsd/board.c @@ -939,10 +939,19 @@ load_boards(char *key) } if (!IN_CLASS()) { if(IS_LISTING_FAV()){ - fav_t *fav = get_current_fav(); - int nfav = get_data_number(fav); + fav_t *fav = get_current_fav(); + int nfav; + // XXX TODO 很多人死在這裡,但我不確定他們是 fav 臨時壞掉還是該永久修正 // workaround 應該是 nfav = fav ? get_data_number(fav) : 0; + if (!get_current_fav()) { + vmsgf("我的最愛系統錯誤,請到" BN_BUGREPORT "報告您之前進行了哪些動作,謝謝"); + refresh(); + assert(get_current_fav()); + exit(-1); + } + + nfav = get_data_number(fav); if( nfav == 0 ) { nbrdsize = 1; nbrd = (boardstat_t *)malloc(sizeof(boardstat_t) * 1); @@ -1486,8 +1495,16 @@ choose_board(int newflag) char keyword[13] = "", buf[PATHLEN]; setutmpmode(newflag ? READNEW : READBRD); - if( get_fav_root() == NULL ) + if( get_fav_root() == NULL ) { fav_load(); + if (!get_current_fav()) { + vmsgf("我的最愛載入失敗,請到" BN_BUGREPORT "報告您之前進行了哪些動作,謝謝"); + refresh(); + assert(get_current_fav()); + exit(-1); + } + } + ++choose_board_depth; brdnum = 0; if (!cuser.userlevel) /* guest yank all boards */ diff --git a/pttbbs/mbbsd/fav.c b/pttbbs/mbbsd/fav.c index d6e54b07..5c1b94fd 100644 --- a/pttbbs/mbbsd/fav.c +++ b/pttbbs/mbbsd/fav.c @@ -521,6 +521,7 @@ int fav_load(void) fav_t *fp; if (fav_stack_num > 0) return -1; + setuserfile(buf, FAV); if (!dashf(buf)) { |