summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-07-06 14:06:02 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-07-06 14:06:02 +0800
commitecdf6203e40698b62611c1099bb010cdd5924924 (patch)
tree66425bf8800a3ea38a8d18635d8c4f8ad210f2cc
parent067faff5d4aa230c86320393d03d8eb1d4303f7a (diff)
downloadpttbbs-ecdf6203e40698b62611c1099bb010cdd5924924.tar
pttbbs-ecdf6203e40698b62611c1099bb010cdd5924924.tar.gz
pttbbs-ecdf6203e40698b62611c1099bb010cdd5924924.tar.bz2
pttbbs-ecdf6203e40698b62611c1099bb010cdd5924924.tar.lz
pttbbs-ecdf6203e40698b62611c1099bb010cdd5924924.tar.xz
pttbbs-ecdf6203e40698b62611c1099bb010cdd5924924.tar.zst
pttbbs-ecdf6203e40698b62611c1099bb010cdd5924924.zip
help update, fix mail title unchanged outside vedit (partial?)
and 'search for recommends' patch by ledia@ptt, thanks. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2903 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--include/modes.h3
-rw-r--r--mbbsd/mail.c3
-rw-r--r--mbbsd/read.c37
-rw-r--r--sample/etc/board.help30
4 files changed, 44 insertions, 29 deletions
diff --git a/include/modes.h b/include/modes.h
index 45d1b92a..391efadd 100644
--- a/include/modes.h
+++ b/include/modes.h
@@ -136,7 +136,8 @@
#define RS_MARK 0x20 /* search the first article */
#define RS_AUTHOR 0x40 /* search author's article */
#define RS_NEWPOST 0x80 /* search new posts */
-#define RS_NOKEYWORD 0x100 /* search new posts */
+#define RS_KEYWORD_EXCLUDE 0x100 /* exclude keyword */
+#define RS_RECOMMEND 0x200 /* search by recommends */
#define CURSOR_FIRST (RS_TITLE | RS_FIRST)
#define CURSOR_NEXT (RS_TITLE | RS_FORWARD)
diff --git a/mbbsd/mail.c b/mbbsd/mail.c
index 5e9be2fe..e0195689 100644
--- a/mbbsd/mail.c
+++ b/mbbsd/mail.c
@@ -316,12 +316,13 @@ do_send(const char *userid, const char *title)
sethomepath(genbuf, userid);
stampfile(genbuf, &mhdr);
strlcpy(mhdr.owner, cuser.userid, sizeof(mhdr.owner));
- strncpy(mhdr.title, save_title, TTLEN);
if (vedit(genbuf, YEA, NULL) == -1) {
unlink(genbuf);
clear();
return -2;
}
+ /* why not make title here? */
+ strncpy(mhdr.title, save_title, TTLEN);
clear();
sethomefile(fpath, userid, FN_OVERRIDES);
i = belong(fpath, cuser.userid);
diff --git a/mbbsd/read.c b/mbbsd/read.c
index 6f10aa25..ca62d426 100644
--- a/mbbsd/read.c
+++ b/mbbsd/read.c
@@ -394,7 +394,7 @@ select_read(const keeploc_t * locmem, int sr_mode)
char keyword[TTLEN + 1] = "";
char genbuf[MAXPATHLEN], *p = strstr(currdirect, "SR.");
static int _mode = 0;
- int len, fd, fr, i, count=0, reference = 0;
+ int len, fd, fr, i, count=0, reference = 0, n_recommend = 0;
fileheader_t *fh = &headers[locmem->crs_ln - locmem->top_ln];
STATINC(STAT_SELECTREAD);
@@ -416,14 +416,22 @@ select_read(const keeploc_t * locmem, int sr_mode)
"%s:%s\n", currboard, keyword);
#endif
}
- else if(sr_mode & RS_NOKEYWORD)
+ else if(sr_mode & RS_KEYWORD_EXCLUDE)
{
if(!(currmode & MODE_SELECT) ||
!getdata(b_lines, 0, "增加條件 排除標題:",
keyword, TTLEN, DOECHO))
return READ_REDRAW;
}
- else
+ else if (sr_mode & RS_RECOMMEND)
+ {
+ if(currstat != RMAIL && (
+ !getdata(b_lines, 0,
+ (currmode & MODE_SELECT) ? "增加條件 推文數:":"最低推數:",
+ keyword, 7, LCECHO) || (n_recommend = atoi(keyword)) <= 0 ))
+ return READ_REDRAW;
+ }
+ else
{
if(p && _mode & sr_mode & (RS_TITLE | RS_NEWPOST | RS_MARK))
return DONOTHING;
@@ -458,24 +466,27 @@ select_read(const keeploc_t * locmem, int sr_mode)
len /= sizeof(fileheader_t);
for( i = 0 ; i < len ; ++i ){
reference++;
- if( sr_mode & RS_MARK &&
+ if( (sr_mode & RS_MARK) &&
!(fhs[i].filemode & FILE_MARKED) )
continue;
- else if(sr_mode & RS_NEWPOST &&
+ else if((sr_mode & RS_NEWPOST) &&
!strncmp(fhs[i].title, "Re:", 3))
continue;
- else if(sr_mode & RS_AUTHOR &&
+ else if((sr_mode & RS_AUTHOR) &&
!strcasestr(fhs[i].owner, keyword))
continue;
- else if(sr_mode & RS_KEYWORD &&
+ else if((sr_mode & RS_KEYWORD) &&
!strcasestr(fhs[i].title, keyword))
continue;
- else if(sr_mode & RS_NOKEYWORD &&
+ else if(sr_mode & RS_KEYWORD_EXCLUDE &&
strcasestr(fhs[i].title, keyword))
continue;
- else if(sr_mode & RS_TITLE &&
+ else if((sr_mode & RS_TITLE) &&
strcmp(subject(fhs[i].title), keyword))
continue;
+ else if ((sr_mode & RS_RECOMMEND) &&
+ fhs[i].recommend < n_recommend )
+ continue;
++count;
if(p == NULL)
{
@@ -555,7 +566,11 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
case Ctrl('H'):
mode = select_read(locmem, RS_NEWPOST);
break;
-
+
+ case 'Z':
+ mode = select_read(locmem, RS_RECOMMEND);
+ break;
+
case 'a':
case 'A':
mode = select_read(locmem, RS_AUTHOR);
@@ -575,7 +590,7 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
break;
case '!':
- mode = select_read(locmem, RS_NOKEYWORD);
+ mode = select_read(locmem, RS_KEYWORD_EXCLUDE);
break;
case '=':
diff --git a/sample/etc/board.help b/sample/etc/board.help
index 3a702134..063b458d 100644
--- a/sample/etc/board.help
+++ b/sample/etc/board.help
@@ -1,23 +1,21 @@
【 全功能看板操作說明 】
【 基本命令 】
- (p)(↑) 上移一篇文章 (^P/^O/^V)發表文章/競標/活動連署
- (n)(↓) 下移一篇文章 (d) 刪除文章
- (P)(PgUp) 上移一頁 (S) 串連相關文章
- (N)(PgDn) 下移一頁 (##) 跳到 ## 號文章
- (r)(→) 閱讀此篇文章 ($) 跳到最後一篇文章
+ (p/↑)/(n/↓) 上移/下移一篇文章 (數字鍵) 跳到指定號碼的文章
+ (P/PgUp)(N/PgDn) 下移/下移一頁 (Home)/(End/$) 跳到首篇/末篇文章
+ (r)(→) 閱讀此篇文章 (=[]<>-+) 主題式閱讀
+ (^P)/(y)/(X) 發表/回覆/推薦文章 (F/U)/(x) 轉寄至信箱/轉錄至其它看板
【 進階命令 】
- (tab)/z 文摘模式/精華區 (a/A)(^Q) 找尋作者/作者資料
- (b/f) 展讀備忘錄/參與賭盤 (?)(/) 找尋標題
- (V/R) 投票/查詢投票結果 (^W)(X) 我在哪裡/推薦文章/參與競標
- (x)(w) 轉錄文章/丟水球 (=)/([]<>-+) 找尋首篇文章/主題式閱讀
- (F) 文章寄回Internet郵箱 (U) 將文章 uuencode 後寄回郵箱
- (E)/(Q) 重編文章/查詢價格/匿名(^H) 列出所有的主要標題
+ (/)(?)/(a/A)/(Z) 搜尋 關鍵字/作者/推文數 (^Q)/(w) 作者資料/丟作者水球
+ (G)/(S) 搜尋 保留標記/標題 (^H)/(!) 只列主要標題/不列關鍵字
+ (z)/(TAB)/(b) 閱讀精華區/文摘/進板畫面 (^W) 我在哪裡
+ (^O)/(X)/(f) 競標/下標/參與賭盤 (^V)/(V)/(R) 活動連署/投票/投票結果
+ (d)/(E)/(Q) 刪文/重編文章/查詢價格或匿名 (S) 串連相關文章
【 板主命令 】
- (M/o) 舉行投票/編私投票名單 (m/c/g/^Z) 保留/選錄精華/文摘/置底
- (D) 刪除一段範圍的文章 (T/B) 重編文章標題/重編看板標題
- (I/^E) 開放/禁止看板推薦/發文(t/^D) 標記文章/砍除標記的文章
- (O)/(i) 發表注意事項 文章類別 (H)/(Y) 看板隱藏/現身 取消推薦文章
- (^G) 舉辦賭盤/停止下注/開獎(W/K/v) 編進板畫面/水桶名單/可見名單
+ (M/o) 舉行投票/編輯投票名單 (m/c/g/^Z) 保留/選錄精華/文摘/置底
+ (D) 刪除一段範圍的文章 (T/B) 重編文章標題/重編看板標題
+ (I/^E) 開放/禁止看板推薦/發文 (t/^D) 標記文章/砍除標記的文章
+ (O)/(i) 發表注意事項 文章類別 (H)/(Y) 切換看板隱藏/取消推薦文章
+ (^G) 舉辦賭盤/停止下注/開獎 (W)/(K)/(v) 編進板畫面/水桶名單/可見名單