else
pat->max = M_MAXRANGE;
+ SKIPWS (tmp);
s->dptr = tmp;
return 0;
}
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;
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
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;
}
}
}
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)
{