diff options
author | Thomas Roessler <roessler@does-not-exist.org> | 1999-02-11 17:46:03 +0000 |
---|---|---|
committer | Thomas Roessler <roessler@does-not-exist.org> | 1999-02-11 17:46:03 +0000 |
commit | b71ec4bc625c9ee51a7679830fc6121c39e4a772 (patch) | |
tree | fb4ad5b554c079dee13fcaaea7d3a7be33752d20 /pattern.c | |
parent | 8825e56268b40df08a1ab54740de425ff01c425d (diff) |
curs_main.c: Check whether the user pressed a number before putting
it back onto the stack. (OP_JUMP)
pattern.c: Vikas' latest fix.
Diffstat (limited to 'pattern.c')
-rw-r--r-- | pattern.c | 34 |
1 files changed, 13 insertions, 21 deletions
@@ -316,6 +316,7 @@ int eat_range (pattern_t *pat, BUFFER *s, BUFFER *err) else pat->max = M_MAXRANGE; + SKIPWS (tmp); s->dptr = tmp; return 0; } @@ -967,6 +968,11 @@ int mutt_pattern_func (int op, char *prompt) for (i = 0; i < Context->msgcount; i++) { + /* new limit pattern implicitly uncollapses all threads */ + Context->hdrs[i]->virtual = -1; + Context->hdrs[i]->limited = 0; + Context->hdrs[i]->collapsed = 0; + Context->hdrs[i]->num_hidden = 0; if (mutt_pattern_exec (pat, M_MATCH_FULL_ADDRESS, Context, Context->hdrs[i])) { Context->hdrs[i]->virtual = Context->vcount; @@ -976,13 +982,6 @@ int mutt_pattern_func (int op, char *prompt) Context->vsize+=THIS_BODY->length + THIS_BODY->offset - THIS_BODY->hdr_offset; } - else - { - Context->hdrs[i]->virtual = -1; - Context->hdrs[i]->limited = 0; - Context->hdrs[i]->collapsed = 0; - Context->hdrs[i]->num_hidden = 0; - } } } else @@ -994,17 +993,15 @@ int mutt_pattern_func (int op, char *prompt) switch (op) { case M_DELETE: - mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_DELETE, 1); - break; case M_UNDELETE: - mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_DELETE, 0); - break; + mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_DELETE, + (op == M_DELETE)); + break; case M_TAG: - mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_TAG, 1); - break; case M_UNTAG: - mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_TAG, 0); - break; + mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_TAG, + (op == M_TAG)); + break; } } } @@ -1016,24 +1013,19 @@ int mutt_pattern_func (int op, char *prompt) if (op == M_LIMIT) { - Context->collapsed = 0; safe_free ((void **) &Context->pattern); if (Context->limit_pattern) mutt_pattern_free (&Context->limit_pattern); if (!Context->vcount) { + Context->vcount = Context->msgcount; mutt_error _("No messages matched criteria."); /* restore full display */ for (i = 0; i < Context->msgcount; i++) { Context->hdrs[i]->virtual = i; - Context->hdrs[i]->limited = 0; - Context->hdrs[i]->num_hidden = 0; - Context->hdrs[i]->collapsed = 0; Context->v2r[i] = i; } - - Context->vcount = Context->msgcount; } else if (mutt_strncmp (buf, "~A", 2) != 0) { |