summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mbbsd/read.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/mbbsd/read.c b/mbbsd/read.c
index 5988a5ea..2a4a3c63 100644
--- a/mbbsd/read.c
+++ b/mbbsd/read.c
@@ -416,6 +416,13 @@ select_read(const keeploc_t * locmem, int sr_mode)
"%s:%s\n", currboard, keyword);
#endif
}
+ else if(sr_mode & RS_NOKEYWORD)
+ {
+ if(!(currmode & MODE_SELECT) ||
+ !getdata(b_lines, 0, "增加條件 排除標題:",
+ keyword, TTLEN, DOECHO))
+ return READ_REDRAW;
+ }
else
{
if(p && _mode & sr_mode & (RS_TITLE | RS_NEWPOST | RS_MARK))
@@ -463,6 +470,9 @@ select_read(const keeploc_t * locmem, int sr_mode)
else if(sr_mode & RS_KEYWORD &&
!strcasestr(fhs[i].title, keyword))
continue;
+ else if(sr_mode & RS_NOKEYWORD &&
+ strcasestr(fhs[i].title, keyword))
+ continue;
else if(sr_mode & RS_TITLE &&
strcmp(subject(fhs[i].title), keyword))
continue;
@@ -564,6 +574,10 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem,
mode = select_read(locmem, RS_TITLE);
break;
+ case '!':
+ mode = select_read(locmem, RS_NOKEYWORD);
+ break;
+
case '=':
new_ln = thread(locmem, RELATE_FIRST);
break;