summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-10-06 13:59:22 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-10-06 13:59:22 +0800
commit19d414e697b8c1be2245c7ce1fa18a3ca38b9459 (patch)
tree5ca4af13266d7f965812ded1aa93eff48676a12d
parentda90aab7aafa6f78b0362385257dc1900ec9669f (diff)
downloadpttbbs.sr_digest.tar
pttbbs.sr_digest.tar.gz
pttbbs.sr_digest.tar.bz2
pttbbs.sr_digest.tar.lz
pttbbs.sr_digest.tar.xz
pttbbs.sr_digest.tar.zst
pttbbs.sr_digest.zip
* change digest to simply another select read (SR) mode.pttbbs.sr_digest
git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.sr_digest@4906 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--include/modes.h27
-rw-r--r--mbbsd/aids.c10
-rw-r--r--mbbsd/bbs.c266
-rw-r--r--mbbsd/menu.c2
-rw-r--r--mbbsd/read.c65
-rw-r--r--mbbsd/stuff.c3
-rw-r--r--mbbsd/var.c1
-rw-r--r--sample/pttbbs.conf3
-rw-r--r--util/initbbs.c9
9 files changed, 119 insertions, 267 deletions
diff --git a/include/modes.h b/include/modes.h
index 641ed3ca..4d4100b9 100644
--- a/include/modes.h
+++ b/include/modes.h
@@ -129,7 +129,7 @@
#define MODE_POSTCHECKED 0x0004 /* 是否已檢查在 currboard 發表文章的權限 */
#define MODE_BOARD 0x0008 /* 是否可以在 currboard 刪除、mark文章 */
#define MODE_GROUPOP 0x0010 /* 是否為小組長 (可以在 MENU 開板) */
-#define MODE_DIGEST 0x0020 /* 是否為 digest mode */
+// #define MODE_DIGEST 0x0020 /* 是否為 digest mode */ // deprecated
#define MODE_SELECT 0x0080 /* 搜尋使用者標題 */
#define MODE_DIRTY 0x0100 /* 是否更動過 userflag */
@@ -144,18 +144,19 @@
#define TAG_INSERT 2 /* 加入 TagList */
-#define RS_FORWARD 0x01 /* backward */
-#define RS_TITLE 0x02 /* author/title */
-#define RS_KEYWORD 0x04
-#define RS_FIRST 0x08 /* find first article */
-#define RS_CURRENT 0x10 /* match current read article */
-#define RS_MARK 0x20 /* search by 'm' mark */
-#define RS_AUTHOR 0x40 /* search author's article */
-#define RS_NEWPOST 0x80 /* search new posts */
-#define RS_KEYWORD_EXCLUDE 0x100 /* exclude keyword */
-#define RS_RECOMMEND 0x200 /* search by recommends */
-#define RS_MONEY 0x400 /* search by money */
-#define RS_SOLVED 0x800 /* search by 's' mark */
+#define RS_FORWARD 0x0001 /* backward */
+#define RS_TITLE 0x0002 /* author/title */
+#define RS_KEYWORD 0x0004
+#define RS_FIRST 0x0008 /* find first article */
+#define RS_CURRENT 0x0010 /* match current read article */
+#define RS_MARK 0x0020 /* search by 'm' mark */
+#define RS_AUTHOR 0x0040 /* search author's article */
+#define RS_NEWPOST 0x0080 /* search new posts */
+#define RS_KEYWORD_EXCLUDE 0x0100 /* exclude keyword */
+#define RS_RECOMMEND 0x0200 /* search by recommends */
+#define RS_MONEY 0x0400 /* search by money */
+#define RS_SOLVED 0x0800 /* search by 's' mark */
+#define RS_DIGEST 0x1000 /* search by digest ('g') mark */
#define CURSOR_FIRST (RS_TITLE | RS_FIRST)
#define CURSOR_NEXT (RS_TITLE | RS_FORWARD)
diff --git a/mbbsd/aids.c b/mbbsd/aids.c
index 988cdb6e..e338b5bb 100644
--- a/mbbsd/aids.c
+++ b/mbbsd/aids.c
@@ -197,16 +197,6 @@ int search_aidu_in_board(SearchAIDResult_t *r, const char *bname, const aidu_t a
r->n = n;
}
}
- /* else search digest */
- if(r->n < 0)
- {
- setbfile(dirfile, bname, fn_mandex);
- if((n = search_aidu_in_bfile(dirfile, aidu)) >= 0)
- {
- r->where = AIDR_DIGEST;
- r->n = n;
- }
- }
return r->n;
}
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index 643a26fe..1405e645 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -125,26 +125,6 @@ modify_dir_lite(
return 0;
}
-static void
-check_locked(fileheader_t *fhdr)
-{
- boardheader_t *bp = NULL;
-
- if (currstat == RMAIL)
- return;
- if (!currboard[0] || currbid <= 0)
- return;
- bp = getbcache(currbid);
- if (!bp)
- return;
- if (!(fhdr->filemode & FILE_SOLVED))
- return;
- if (!(fhdr->filemode & FILE_MARKED))
- return;
- syncnow();
- bp->SRexpire = now;
-}
-
/* hack for listing modes */
enum LISTMODES {
LISTMODE_DATE = 0,
@@ -335,8 +315,6 @@ int IsFreeBoardName(const char *brdname)
int
CheckPostPerm(void)
{
- if (currmode & MODE_DIGEST)
- return 0;
return CheckModifyPerm();
}
@@ -778,7 +756,7 @@ do_deleteCrossPost(const fileheader_t *fh, char bname[])
if( (i=getindex(bdir, &newfh, 0))>0)
{
#ifdef SAFE_ARTICLE_DELETE
- if(bp && !(currmode & MODE_DIGEST) && bp->nuser > 30 )
+ if(bp && bp->nuser > 30 )
safe_article_delete(i, &newfh, bdir, NULL);
else
#endif
@@ -1414,7 +1392,7 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct)
assert(0<=currbid-1 && currbid-1<MAX_BOARD && bp);
- // special modes (plus MODE_DIGEST?)
+ // special modes
if( currmode & MODE_SELECT )
return DONOTHING;
@@ -2154,9 +2132,14 @@ stop_gamble(void)
}
return 1;
}
+#endif
+
static int
join_gamble(int ent, const fileheader_t * fhdr, const char *direct)
{
+#ifdef NO_GAMBLE
+ return DONOTHING;
+#else
if (!HasUserPerm(PERM_LOGINOK))
return DONOTHING;
if (stop_gamble()) {
@@ -2166,10 +2149,15 @@ join_gamble(int ent, const fileheader_t * fhdr, const char *direct)
assert(0<=currbid-1 && currbid-1<MAX_BOARD);
ticket(currbid);
return FULLUPDATE;
+#endif
}
+
static int
hold_gamble(void)
{
+#ifdef NO_GAMBLE
+ return DONOTHING;
+#else
char fn_ticket[128], fn_ticket_end[128], genbuf[128], msg[256] = "",
yn[10] = "";
char tmp[128];
@@ -2288,8 +2276,8 @@ hold_gamble(void)
vmsg("賭盤設定完成");
return FULLUPDATE;
-}
#endif
+}
static int
cite_post(int ent, const fileheader_t * fhdr, const char *direct)
@@ -2368,19 +2356,6 @@ edit_title(int ent, fileheader_t * fhdr, const char *direct)
}
static int
-solve_post(int ent, fileheader_t * fhdr, const char *direct)
-{
- if ((currmode & MODE_BOARD)) {
- fhdr->filemode ^= FILE_SOLVED;
- substitute_ref_record(direct, fhdr, ent);
- check_locked(fhdr);
- return PART_REDRAW;
- }
- return DONOTHING;
-}
-
-
-static int
recommend_cancel(int ent, fileheader_t * fhdr, const char *direct)
{
char yn[5];
@@ -2808,27 +2783,70 @@ recommend(int ent, fileheader_t * fhdr, const char *direct)
return FULLUPDATE;
}
-static int
-mark_post(int ent, fileheader_t * fhdr, const char *direct)
+static void
+check_sr_expire(fileheader_t *fhdr, unsigned int tag)
{
- char buf[STRLEN], fpath[STRLEN];
+ boardheader_t *bp = NULL;
+ unsigned int mode = fhdr->filemode;
+ int need_expire = 0;
- if (!(currmode & MODE_BOARD))
- return DONOTHING;
+ if (currstat == RMAIL)
+ return;
+ if (!currboard[0] || currbid <= 0 || currbid > MAX_BOARD)
+ return;
+ bp = getbcache(currbid);
+ if (!bp)
+ return;
- setbpath(fpath, currboard);
- sprintf(buf, "%s/%s", fpath, fhdr->filename);
+ // SOLVE + MARKED = LOCKED (cannot edit)
+ if (!need_expire &&
+ (mode & FILE_SOLVED) &&
+ (mode & FILE_MARKED))
+ need_expire = 1;
- if( !(fhdr->filemode & FILE_MARKED) && /* 若目前還沒有 mark 才要 check */
- access(buf, F_OK) < 0 )
+ // digest always needs reload
+ if (!need_expire &&
+ (tag & FILE_DIGEST))
+ need_expire = 1;
+
+ if (!need_expire)
+ return;
+
+ syncnow();
+ bp->SRexpire = now;
+}
+
+static int
+toggle_post_tag(int ent, fileheader_t * fhdr,
+ const char *direct, unsigned int tag)
+{
+ if (!(currmode & MODE_BOARD))
return DONOTHING;
- fhdr->filemode ^= FILE_MARKED;
+ fhdr->filemode ^= tag;
substitute_ref_record(direct, fhdr, ent);
- check_locked(fhdr);
+ check_sr_expire(fhdr, tag);
return PART_REDRAW;
}
+static int
+mark_post(int ent, fileheader_t * fhdr, const char *direct)
+{
+ return toggle_post_tag(ent, fhdr, direct, FILE_MARKED);
+}
+
+static int
+digest_post(int ent, fileheader_t * fhdr, const char *direct)
+{
+ return toggle_post_tag(ent, fhdr, direct, FILE_DIGEST);
+}
+
+static int
+solve_post(int ent, fileheader_t * fhdr, const char *direct)
+{
+ return toggle_post_tag(ent, fhdr, direct, FILE_SOLVED);
+}
+
int
del_range(int ent, const fileheader_t *fhdr, const char *direct)
{
@@ -2871,7 +2889,7 @@ del_range(int ent, const fileheader_t *fhdr, const char *direct)
outmsg("處理中,請稍後...");
refresh();
#ifdef SAFE_ARTICLE_DELETE
- if(bp && !(currmode & MODE_DIGEST) && bp->nuser > 30)
+ if(bp && bp->nuser > 30)
ret = safe_article_delete_range(direct, inum1, inum2);
else
#endif
@@ -2945,7 +2963,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct)
// reason 1: BM may alter post restrictions to this board
// reason 2: this account may be occupied by someone else.
if (!HasUserPerm(PERM_BASIC) || // including guests
- !( (currmode & MODE_DIGEST) ? (currmode & MODE_BOARD) : CheckPostPerm() ) || // allow BM to delete posts in digest mode
+ !CheckPostPerm() ||
!CheckPostRestriction(currbid)
)
return DONOTHING;
@@ -2994,8 +3012,8 @@ del_post(int ent, fileheader_t * fhdr, char *direct)
if (genbuf[0] == 'y') {
if(
#ifdef SAFE_ARTICLE_DELETE
- ((reason[0] || bp->nuser > 30) && !(currmode & MODE_DIGEST) &&
- !safe_article_delete(ent, fhdr, direct, reason[0] ? reason : NULL)) ||
+ ((reason[0] || bp->nuser > 30) &&
+ !safe_article_delete(ent, fhdr, direct, reason[0] ? reason : NULL)) ||
#endif
// XXX TODO delete_record is really really dangerous -
// we should verify the header (maybe by filename) is the same.
@@ -3010,8 +3028,8 @@ del_post(int ent, fileheader_t * fhdr, char *direct)
// badpost assignment
- // case one, self-owned, invalid author, or digest mode - should not give bad posts
- if (!not_owned || tusernum <= 0 || (currmode & MODE_DIGEST) )
+ // case one, self-owned, invalid author - should not give bad posts
+ if (!not_owned || tusernum <= 0 )
{
// do nothing
}
@@ -3120,7 +3138,6 @@ del_post(int ent, fileheader_t * fhdr, char *direct)
// INVALIDMONEY_MODES (FILE_BID, FILE_ANONYMOUS, ...) 也都不用扣
if (fhdr->multi.money < 0 ||
IsFreeBoardName(currboard) || (currbrdattr & BRD_BAD) ||
- (currmode & MODE_DIGEST) ||
(fhdr->filemode & INVALIDMONEY_MODES) ||
0)
fhdr->multi.money = 0;
@@ -3367,11 +3384,13 @@ view_postinfo(int ent, const fileheader_t * fhdr, const char *direct, int crs_ln
return FULLUPDATE;
}
-#ifdef OUTJOBSPOOL
/* 看板備份 */
static int
tar_addqueue(void)
{
+#ifndef OUTJOBSPOOL
+ return DONOTHING;
+#else
char email[60], qfn[80], ans[2];
FILE *fp;
char bakboard, bakman;
@@ -3435,8 +3454,8 @@ tar_addqueue(void)
outs("稍後將會在系統負荷較低的時候將資料寄給您~ :) ");
pressanykey();
return FULLUPDATE;
-}
#endif
+}
/* ----------------------------------------------------- */
/* 看板進板畫面、文摘、精華區 */
@@ -3536,28 +3555,13 @@ board_select(void)
return NEWDIRECT;
}
-int
-board_digest(void)
-{
- if (currmode & MODE_SELECT)
- board_select();
- currmode ^= MODE_DIGEST;
-
- // MODE_POST may be changed if board is modified.
- // do not change post perm here. use other instead.
-
- setbdir(currdirect, currboard);
- return NEWDIRECT;
-}
-
-
static int
push_bottom(int ent, fileheader_t *fhdr, const char *direct)
{
int num;
char buf[PATHLEN];
- if ((currmode & MODE_DIGEST) || !(currmode & MODE_BOARD)
- || fhdr->filename[0]=='L')
+ if (!(currmode & MODE_BOARD) ||
+ fhdr->filename[0]=='L')
return DONOTHING;
setbottomtotal(currbid); // <- Ptt : will be remove when stable
num = getbottomtotal(currbid);
@@ -3591,87 +3595,6 @@ push_bottom(int ent, fileheader_t *fhdr, const char *direct)
}
static int
-good_post(int ent, fileheader_t * fhdr, const char *direct)
-{
- char genbuf[200];
- char genbuf2[200];
- int delta = 0;
-
- if ((currmode & MODE_DIGEST) || !(currmode & MODE_BOARD))
- return DONOTHING;
-
- if(vans(fhdr->filemode & FILE_DIGEST ?
- "取消看板文摘?(Y/n)" : "收入看板文摘?(Y/n)") == 'n')
- return READ_REDRAW;
-
- if (fhdr->filemode & FILE_DIGEST) {
- fhdr->filemode = (fhdr->filemode & ~FILE_DIGEST);
- if (!strcmp(currboard, BN_NOTE) ||
-#ifdef BN_ARTDSN
- !strcmp(currboard, BN_ARTDSN) ||
-#endif
- !strcmp(currboard, BN_BUGREPORT) ||
- !strcmp(currboard, BN_LAW)
- )
- {
- deumoney(searchuser(fhdr->owner, NULL), -1000); // TODO if searchuser() return 0
- if (!(currmode & MODE_SELECT))
- fhdr->multi.money -= 1000;
- else
- delta = -1000;
- }
- } else {
- fileheader_t digest;
- char *ptr, buf[PATHLEN];
-
- memcpy(&digest, fhdr, sizeof(digest));
- digest.filename[0] = 'G';
- strlcpy(buf, direct, sizeof(buf));
- ptr = strrchr(buf, '/');
- assert(ptr);
- ptr++;
- ptr[0] = '\0';
- snprintf(genbuf, sizeof(genbuf), "%s%s", buf, digest.filename);
-
- if (dashf(genbuf))
- unlink(genbuf);
-
- digest.filemode = 0;
- snprintf(genbuf2, sizeof(genbuf2), "%s%s", buf, fhdr->filename);
- Copy(genbuf2, genbuf);
- strcpy(ptr, fn_mandex);
- append_record(buf, &digest, sizeof(digest));
-
-#ifdef BN_DIGEST
- assert(0<=currbid-1 && currbid-1<MAX_BOARD);
- if(!(getbcache(currbid)->brdattr & BRD_HIDE)) {
- getdata(1, 0, "好文值得出版到全站文摘?(N/y)", genbuf2, 3, LCECHO);
- if(genbuf2[0] == 'y')
- do_crosspost(BN_DIGEST, &digest, genbuf, 1);
- }
-#endif
-
- fhdr->filemode = (fhdr->filemode & ~FILE_MARKED) | FILE_DIGEST;
- if (!strcmp(currboard, BN_NOTE) ||
-#ifdef BN_ARTDSN
- !strcmp(currboard, BN_ARTDSN) ||
-#endif
- !strcmp(currboard, BN_BUGREPORT) ||
- !strcmp(currboard, BN_LAW)
- )
- {
- deumoney(searchuser(fhdr->owner, NULL), 1000); // TODO if searchuser() return 0
- if (!(currmode & MODE_SELECT))
- fhdr->multi.money += 1000;
- else
- delta = 1000;
- }
- }
- substitute_ref_record(direct, fhdr, ent);
- return FULLUPDATE;
-}
-
-static int
b_help(void)
{
show_helpfile(fn_boardhelp);
@@ -3714,12 +3637,17 @@ int check_cooldown(boardheader_t *bp)
}
return 0;
}
+#endif
+
/**
* 設定看板冷靜功能, 限制使用者發文時間
*/
static int
change_cooldown(void)
{
+#ifndef USE_COOLDOWN
+ return DONOTHING;
+#else
char genbuf[256] = {'\0'};
boardheader_t *bp = getbcache(currbid);
@@ -3744,9 +3672,10 @@ change_cooldown(void)
post_policelog(bp->brdname, NULL, "冷靜", genbuf, bp->brdattr & BRD_COOLDOWN);
pressanykey();
return FULLUPDATE;
-}
#endif
+}
+#if 0
static int
b_moved_to_config()
{
@@ -3757,6 +3686,7 @@ b_moved_to_config()
}
return DONOTHING;
}
+#endif
/* ----------------------------------------------------- */
/* 看板功能表 */
@@ -3769,13 +3699,9 @@ const onekey_t read_comms[] = {
{ 0, NULL }, // Ctrl('D')
{ 1, lock_post }, // Ctrl('E')
{ 0, NULL }, // Ctrl('F')
-#ifdef NO_GAMBLE
- { 0, NULL }, // Ctrl('G')
-#else
{ 0, hold_gamble }, // Ctrl('G')
-#endif
{ 0, NULL }, // Ctrl('H')
- { 0, board_digest }, // Ctrl('I') KEY_TAB 9
+ { 0, NULL }, // Ctrl('I') KEY_TAB 9
{ 0, NULL }, // Ctrl('J')
{ 0, NULL }, // Ctrl('K')
{ 0, NULL }, // Ctrl('L')
@@ -3809,13 +3735,9 @@ const onekey_t read_comms[] = {
{ 1, edit_post }, // 'E'
{ 0, NULL }, // 'F'
{ 0, NULL }, // 'G'
- { 0, b_moved_to_config }, // 'H'
+ { 0, NULL }, // 'H'
{ 0, b_config }, // 'I'
-#ifdef USE_COOLDOWN
{ 0, change_cooldown }, // 'J'
-#else
- { 0, NULL }, // 'J'
-#endif
{ 0, NULL }, // 'K'
{ 1, solve_post }, // 'L'
{ 0, NULL }, // 'M'
@@ -3840,12 +3762,8 @@ const onekey_t read_comms[] = {
{ 1, cite_post }, // 'c'
{ 1, del_post }, // 'd'
{ 0, NULL }, // 'e'
-#ifdef NO_GAMBLE
- { 0, NULL }, // 'f'
-#else
{ 0, join_gamble }, // 'f'
-#endif
- { 1, good_post }, // 'g'
+ { 1, digest_post }, // 'g'
{ 0, b_help }, // 'h'
{ 0, b_config }, // 'i'
{ 0, NULL }, // 'j'
@@ -3859,11 +3777,7 @@ const onekey_t read_comms[] = {
{ 1, read_post }, // 'r'
{ 0, do_select }, // 's'
{ 0, NULL }, // 't'
-#ifdef OUTJOBSPOOL
{ 0, tar_addqueue }, // 'u'
-#else
- { 0, NULL }, // 'u'
-#endif
{ 0, NULL }, // 'v'
{ 1, b_call_in }, // 'w'
{ 1, cross_post }, // 'x'
diff --git a/mbbsd/menu.c b/mbbsd/menu.c
index 78b0c482..94548858 100644
--- a/mbbsd/menu.c
+++ b/mbbsd/menu.c
@@ -125,8 +125,6 @@ showtitle(const char *title, const char *mid)
/* prepare tail */
if (currmode & MODE_SELECT)
tail_type = TITLE_TAIL_SELECT;
- else if (currmode & MODE_DIGEST)
- tail_type = TITLE_TAIL_DIGEST;
else
tail_type = TITLE_TAIL_BOARD;
diff --git a/mbbsd/read.c b/mbbsd/read.c
index ba9aa67e..17013217 100644
--- a/mbbsd/read.c
+++ b/mbbsd/read.c
@@ -179,7 +179,7 @@ TagPruner(int bid)
if (vans("刪除所有標記[N]?") != 'y')
return READ_REDRAW;
#ifdef SAFE_ARTICLE_DELETE
- if(bp && !(currmode & MODE_DIGEST) && bp->nuser > 30)
+ if(bp && bp->nuser > 30)
safe_delete_range(currdirect, 0, 0);
else
#endif
@@ -483,7 +483,7 @@ select_read(const keeploc_t * locmem, int sr_mode)
}
else {
// Ptt: only once for these modes.
- if(!first_select && _mode & sr_mode & (RS_TITLE | RS_NEWPOST | RS_MARK | RS_SOLVED))
+ if(!first_select && _mode & sr_mode & (RS_TITLE | RS_NEWPOST | RS_MARK | RS_SOLVED | RS_DIGEST))
return DONOTHING;
if(sr_mode & RS_TITLE) {
@@ -554,7 +554,7 @@ select_read(const keeploc_t * locmem, int sr_mode)
}
/* mark and recommend shouldn't incremental select */
- if(sr_mode & (RS_MARK | RS_RECOMMEND | RS_SOLVED))
+ if(sr_mode & (RS_MARK | RS_RECOMMEND | RS_SOLVED | RS_DIGEST))
inc = 0;
if(reload) {
@@ -598,6 +598,9 @@ select_read(const keeploc_t * locmem, int sr_mode)
if( (sr_mode & RS_MARK) &&
!(fhs[i].filemode & FILE_MARKED) )
continue;
+ if( (sr_mode & RS_DIGEST) &&
+ !(fhs[i].filemode & FILE_DIGEST) )
+ continue;
if( (sr_mode & RS_SOLVED) &&
!(fhs[i].filemode & FILE_SOLVED) )
continue;
@@ -709,8 +712,7 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
mode = NEWDIRECT;
}
else
- mode =
- (currmode & MODE_DIGEST) ? board_digest() : DOQUIT;
+ mode = DOQUIT;
break;
case '#':
{
@@ -762,17 +764,6 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
n += getbtotal(currbid);
/* 不可用 bottom_line,因為如果是在 digest mode,
bottom_line 會是文摘的數目,而不是真正的文章數 */
- if(currmode & MODE_DIGEST)
- {
- newdirect_new_ln = n;
-
- new_ln = locmem->crs_ln;
- /* dirty hack for crs_ln = 1, then HOME pressed */
-
- default_ch = KEY_TAB;
- mode = DONOTHING;
- break;
- }
}
}
if(n < 0)
@@ -780,36 +771,6 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
{
setbfile(dirfile, currboard, FN_DIR);
n = search_aidu(dirfile, aidu);
- if(n >= 0 && (currmode & MODE_DIGEST))
- /* switch to normal read mode */
- {
- newdirect_new_ln = n;
-
- new_ln = locmem->crs_ln;
- /* dirty hack for crs_ln = 1, then HOME pressed */
-
- default_ch = KEY_TAB;
- mode = DONOTHING;
- break;
- }
- }
- if(n < 0)
- /* search digest */
- {
- setbfile(dirfile, currboard, fn_mandex);
- n = search_aidu(dirfile, aidu);
- if(n >= 0 && !(currmode & MODE_DIGEST))
- /* switch to digest mode */
- {
- newdirect_new_ln = n;
-
- new_ln = locmem->crs_ln;
- /* dirty hack for crs_ln = 1, then HOME pressed */
-
- default_ch = KEY_TAB;
- mode = DONOTHING;
- break;
- }
}
} /* if(aidu > 0) */
if(n < 0)
@@ -871,6 +832,10 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
}
break;
+ case KEY_TAB:
+ mode = select_read(locmem, RS_DIGEST);
+ break;
+
case '/':
case '?':
mode = select_read(locmem, RS_KEYWORD);
@@ -1056,8 +1021,6 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
case KEY_RIGHT:
ch = 'r';
default:
- if( ch == 'h' && currmode & (MODE_DIGEST) )
- break;
if (ch > 0 && ch <= onekey_size) {
int (*func)() = rcmdlist[ch - 1].func;
if(rcmdlist[ch - 1].needitem && locmem->crs_ln == 0)
@@ -1152,7 +1115,7 @@ get_records_and_bottom(const char *direct, fileheader_t* headers,
return 0;
// 不顯示置底的情形
- if( n >= headers_size || (currmode & (MODE_SELECT | MODE_DIGEST)) )
+ if( n >= headers_size || (currmode & MODE_SELECT) )
{
rv = get_records(direct, headers, sizeof(fileheader_t),
recbase, headers_size);
@@ -1231,7 +1194,7 @@ i_read(int cmdmode, const char *direct, void (*dotitle) (),
case NEWDIRECT: /* 第一次載入此目錄 */
case DIRCHANGED:
- if (bidcache > 0 && !(currmode & (MODE_SELECT | MODE_DIGEST))){
+ if (bidcache > 0 && !(currmode & MODE_SELECT)){
if( (last_line = getbtotal(currbid)) == 0 ){
setbtotal(currbid);
setbottomtotal(currbid);
@@ -1272,7 +1235,7 @@ i_read(int cmdmode, const char *direct, void (*dotitle) (),
/* In general, records won't be reloaded in PARTUPDATE state.
* But since a board is often changed and cached, it is always
* reloaded here. */
- if (bidcache > 0 && !(currmode & (MODE_SELECT | MODE_DIGEST))) {
+ if (bidcache > 0 && !(currmode & MODE_SELECT)) {
int rec_num;
bottom_line = getbtotal(currbid);
rec_num = bottom_line + getbottomtotal(currbid);
diff --git a/mbbsd/stuff.c b/mbbsd/stuff.c
index a4d0ddb1..145f0b34 100644
--- a/mbbsd/stuff.c
+++ b/mbbsd/stuff.c
@@ -22,8 +22,7 @@ void
setbdir(char *buf, const char *boardname)
{
//assert(boardname[0]);
- snprintf(buf, PATHLEN, str_board_file, boardname[0], boardname,
- (currmode & MODE_DIGEST ? fn_mandex : str_dotdir));
+ snprintf(buf, PATHLEN, str_board_file, boardname[0], boardname, str_dotdir);
}
/**
diff --git a/mbbsd/var.c b/mbbsd/var.c
index b9d8ad74..3cde03df 100644
--- a/mbbsd/var.c
+++ b/mbbsd/var.c
@@ -117,7 +117,6 @@ const char * const fn_reject = FN_REJECT;
const char * const fn_notes = "notes";
const char * const fn_water = FN_WATER;
const char * const fn_visable = FN_VISABLE;
-const char * const fn_mandex = "/.Names";
const char * const fn_boardlisthelp = FN_BRDLISTHELP;
const char * const fn_boardhelp = FN_BOARDHELP;
diff --git a/sample/pttbbs.conf b/sample/pttbbs.conf
index d29b7bbe..b69bdb87 100644
--- a/sample/pttbbs.conf
+++ b/sample/pttbbs.conf
@@ -77,9 +77,6 @@
/* 若定義,該板發文不受行限或是可上傳 */
#define BN_BBSMOVIE "BBSmovie"
-/* 若定義, 則以此為版名提供全站文摘 */
-#define BN_DIGEST BBSMNAME "Digest"
-
// /* 若定義,則.... */
// #define BN_WHOAMI "WhoAmI"
diff --git a/util/initbbs.c b/util/initbbs.c
index 8d25b113..e992e8e9 100644
--- a/util/initbbs.c
+++ b/util/initbbs.c
@@ -190,15 +190,6 @@ static void initBoards() {
b.gid = 5;
newboard(fp, &b);
-#ifdef BN_DIGEST
- strcpy(b.brdname, BN_DIGEST);
- strcpy(b.title, "文摘 ◎" BBSNAME "文摘 好文的收集地");
- b.brdattr = BRD_NOTRAN | BRD_POSTMASK;
- b.level = PERM_SYSOP;
- b.gid = 5;
- newboard(fp, &b);
-#endif
-
#ifdef BN_FIVECHESS_LOG
strcpy(b.brdname, BN_FIVECHESS_LOG);
strcpy(b.title, "棋藝 ◎" BBSNAME "五子棋譜 站上對局全紀錄");