static int eat_regexp (pattern_t * pat, BUFFER *, BUFFER *);
static int eat_date (pattern_t * pat, BUFFER *, BUFFER *);
static int eat_range (pattern_t * pat, BUFFER *, BUFFER *);
static int patmatch (const pattern_t* pat, const char* buf);
static int eat_regexp (pattern_t * pat, BUFFER *, BUFFER *);
static int eat_date (pattern_t * pat, BUFFER *, BUFFER *);
static int eat_range (pattern_t * pat, BUFFER *, BUFFER *);
static int patmatch (const pattern_t* pat, const char* buf);
int tag; /* character used to represent this op */
int op; /* operation to perform */
int class;
int (*eat_arg)(pattern_t *, BUFFER *, BUFFER *);
int tag; /* character used to represent this op */
int op; /* operation to perform */
int class;
int (*eat_arg)(pattern_t *, BUFFER *, BUFFER *);
{'A', M_ALL, 0, NULL},
{'b', M_BODY, M_FULL_MSG, eat_regexp},
{'B', M_WHOLE_MSG, M_FULL_MSG, eat_regexp},
{'A', M_ALL, 0, NULL},
{'b', M_BODY, M_FULL_MSG, eat_regexp},
{'B', M_WHOLE_MSG, M_FULL_MSG, eat_regexp},
{'u', M_SUBSCRIBED_LIST, 0, NULL},
{'v', M_COLLAPSED, 0, NULL},
{'V', M_CRYPT_VERIFIED, 0, NULL},
{'u', M_SUBSCRIBED_LIST, 0, NULL},
{'v', M_COLLAPSED, 0, NULL},
{'V', M_CRYPT_VERIFIED, 0, NULL},
{'x', M_REFERENCE, 0, eat_regexp},
{'X', M_MIMEATTACH, 0, eat_range},
{'y', M_XLABEL, 0, eat_regexp},
{'x', M_REFERENCE, 0, eat_regexp},
{'X', M_MIMEATTACH, 0, eat_range},
{'y', M_XLABEL, 0, eat_regexp},
/* if no uppercase letters are given, do a case-insensitive search */
int mutt_which_case (const char *s)
{
/* if no uppercase letters are given, do a case-insensitive search */
int mutt_which_case (const char *s)
{
- s.fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+ s.fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(mod_core.tmpdir), NULL);
if (pat->op != M_HEADER) {
mutt_parse_mime_message (ctx, h);
if (pat->op != M_HEADER) {
mutt_parse_mime_message (ctx, h);
fseeko (msg->fp, h->offset, 0);
mutt_body_handler (h->content, &s);
}
fseeko (msg->fp, h->offset, 0);
mutt_body_handler (h->content, &s);
}
/* Since we allow two dates to be specified we'll have to adjust that. */
adjust_date_range (&min, &max);
/* Since we allow two dates to be specified we'll have to adjust that. */
adjust_date_range (&min, &max);
- pat->min = mutt_mktime (&min, 1);
- pat->max = mutt_mktime (&max, 1);
+ pat->min = mktime(&min);
+ pat->max = mktime(&max);
ps.dptr++; /* move past the ~ */
if ((entry = lookup_tag (*ps.dptr)) == NULL) {
snprintf (err->data, err->dsize, _("%c: invalid command"), *ps.dptr);
ps.dptr++; /* move past the ~ */
if ((entry = lookup_tag (*ps.dptr)) == NULL) {
snprintf (err->data, err->dsize, _("%c: invalid command"), *ps.dptr);
return NULL;
}
if (entry->class && (flags & entry->class) == 0) {
snprintf (err->data, err->dsize, _("%c: not supported in this mode"),
*ps.dptr);
return NULL;
}
if (entry->class && (flags & entry->class) == 0) {
snprintf (err->data, err->dsize, _("%c: not supported in this mode"),
*ps.dptr);
if (*p != ')') {
snprintf (err->data, err->dsize, _("mismatched parenthesis: %s"),
ps.dptr);
if (*p != ')') {
snprintf (err->data, err->dsize, _("mismatched parenthesis: %s"),
ps.dptr);
return NULL;
}
/* compile the sub-expression */
buf = p_dupstr(ps.dptr + 1, p - ps.dptr - 1);
if ((tmp = mutt_pattern_comp (buf, flags, err)) == NULL) {
p_delete(&buf);
return NULL;
}
/* compile the sub-expression */
buf = p_dupstr(ps.dptr + 1, p - ps.dptr - 1);
if ((tmp = mutt_pattern_comp (buf, flags, err)) == NULL) {
p_delete(&buf);
break;
default:
snprintf (err->data, err->dsize, _("error in pattern at: %s"), ps.dptr);
break;
default:
snprintf (err->data, err->dsize, _("error in pattern at: %s"), ps.dptr);
/* drop previous limit pattern */
p_delete(&Context->pattern);
if (Context->limit_pattern)
/* drop previous limit pattern */
p_delete(&Context->pattern);
if (Context->limit_pattern)
m_strcpy(LastSearch, sizeof(LastSearch), buf);
mutt_message _("Compiling search pattern...");
m_strcpy(LastSearch, sizeof(LastSearch), buf);
mutt_message _("Compiling search pattern...");