45#ifndef MUTT_PATTERN_LIB_H 
   46#define MUTT_PATTERN_LIB_H 
   63#define MUTT_ALIAS_SIMPLESEARCH "~f %s | ~t %s | ~c %s" 
   68#define MUTT_PC_NO_FLAGS                0    
   69#define MUTT_PC_FULL_MSG          (1 << 0)   
   70#define MUTT_PC_PATTERN_DYNAMIC   (1 << 1)   
   71#define MUTT_PC_SEND_MODE_SEARCH  (1 << 2)   
   97#ifdef USE_DEBUG_GRAPHVIZ 
   98  const char *raw_pattern;
 
 
  105#define MUTT_PAT_EXEC_NO_FLAGS         0   
  106#define MUTT_MATCH_FULL_ADDRESS  (1 << 0)  
bool dlg_pattern(struct Buffer *buf)
Show menu to select a Pattern -.
 
Convenience wrapper for the library headers.
 
Many unsorted constants and some structs.
 
const struct CompleteOps CompletePatternOps
Auto-Completion of Patterns.
 
uint8_t PatternCompFlags
Flags for mutt_pattern_comp(), e.g. MUTT_PC_FULL_MSG.
 
PatternAlias
What to do with the matching Aliases.
 
@ PAA_VISIBLE
Set AliasView.is_visible and hide the rest.
 
@ PAA_TAG
Set AliasView.is_tagged, but don't touch the others.
 
@ PAA_UNTAG
Unset AliasView.is_tagged, but don't touch the others.
 
PatternType
Types of pattern to match.
 
@ MUTT_PAT_HEADER
Pattern matches email's header.
 
@ MUTT_PAT_WHOLE_MSG
Pattern matches raw email text.
 
@ MUTT_PAT_BROKEN
Message is part of a broken thread.
 
@ MUTT_PAT_ID_EXTERNAL
Message-Id is among results from an external query.
 
@ MUTT_PAT_OR
Either pattern can match.
 
@ MUTT_PAT_CHILDREN
Pattern matches a child email.
 
@ MUTT_PAT_PARENT
Pattern matches parent.
 
@ MUTT_PAT_REFERENCE
Pattern matches 'References:' or 'In-Reply-To:' field.
 
@ MUTT_PAT_FROM
Pattern matches 'From:' field.
 
@ MUTT_PAT_DRIVER_TAGS
Pattern matches message tags.
 
@ MUTT_PAT_COLLAPSED
Thread is collapsed.
 
@ MUTT_PAT_CRYPT_VERIFIED
Message is crypographically verified.
 
@ MUTT_PAT_HORMEL
Pattern matches email's spam score.
 
@ MUTT_PAT_SUBJECT
Pattern matches 'Subject:' field.
 
@ MUTT_PAT_LIST
Email is on mailing list.
 
@ MUTT_PAT_NEWSGROUPS
Pattern matches newsgroup.
 
@ MUTT_PAT_PERSONAL_RECIP
Email is addressed to the user.
 
@ MUTT_PAT_CC
Pattern matches 'Cc:' field.
 
@ MUTT_PAT_SUBSCRIBED_LIST
Email is on subscribed mailing list.
 
@ MUTT_PAT_SERVERSEARCH
Server-side pattern matches.
 
@ MUTT_PAT_RECIPIENT
User is a recipient of the email.
 
@ MUTT_PAT_CRYPT_ENCRYPT
Message is encrypted.
 
@ MUTT_PAT_UNREFERENCED
Message is unreferenced in the thread.
 
@ MUTT_PAT_CRYPT_SIGN
Message is signed.
 
@ MUTT_PAT_MESSAGE
Pattern matches message number.
 
@ MUTT_PAT_AND
Both patterns must match.
 
@ MUTT_PAT_DATE
Pattern matches 'Date:' field.
 
@ MUTT_PAT_XLABEL
Pattern matches keyword/label.
 
@ MUTT_PAT_SCORE
Pattern matches email's score.
 
@ MUTT_PAT_MIMEATTACH
Pattern matches number of attachments.
 
@ MUTT_PAT_DUPLICATED
Duplicate message.
 
@ MUTT_PAT_PERSONAL_FROM
Email is from the user.
 
@ MUTT_PAT_TO
Pattern matches 'To:' field.
 
@ MUTT_PAT_BCC
Pattern matches 'Bcc:' field.
 
@ MUTT_PAT_SENDER
Pattern matches sender.
 
@ MUTT_PAT_DATE_RECEIVED
Pattern matches date received.
 
@ MUTT_PAT_ADDRESS
Pattern matches any address field.
 
@ MUTT_PAT_MIMETYPE
Pattern matches MIME type.
 
@ MUTT_PAT_PGP_KEY
Message has PGP key.
 
@ MUTT_PAT_ID
Pattern matches email's Message-Id.
 
@ MUTT_PAT_THREAD
Pattern matches email thread.
 
@ MUTT_PAT_SIZE
Pattern matches email's size.
 
@ MUTT_PAT_BODY
Pattern matches email's body.
 
int mutt_pattern_alias_func(char *prompt, struct AliasMenuData *mdata, enum PatternAlias action, struct Menu *menu)
Perform some Pattern matching for Alias.
 
bool mutt_pattern_alias_exec(struct Pattern *pat, PatternExecFlags flags, struct AliasView *av, struct PatternCache *cache)
Match a pattern against an alias.
 
struct PatternList * mutt_pattern_comp(struct MailboxView *mv, const char *s, PatternCompFlags flags, struct Buffer *err)
Create a Pattern.
 
void mutt_check_simple(struct Buffer *s, const char *simple)
Convert a simple search into a real request.
 
int mutt_search_command(struct MailboxView *mv, struct Menu *menu, int cur, struct SearchState *state, SearchFlags flags)
Perform a search.
 
bool mutt_is_subscribed_list_recipient(bool all_addr, struct Envelope *env)
Matches subscribed mailing lists.
 
int mutt_search_alias_command(struct Menu *menu, int cur, struct SearchState *state, SearchFlags flags)
Perform a search.
 
bool mutt_is_list_recipient(bool all_addr, struct Envelope *env)
Matches known mailing lists.
 
void mutt_pattern_free(struct PatternList **pat)
Free a Pattern.
 
int mutt_pattern_func(struct MailboxView *mv, int op, char *prompt)
Perform some Pattern matching.
 
bool mutt_pattern_exec(struct Pattern *pat, PatternExecFlags flags, struct Mailbox *m, struct Email *e, struct PatternCache *cache)
Match a pattern against an email header.
 
uint8_t PatternExecFlags
Flags for mutt_pattern_exec(), e.g. MUTT_MATCH_FULL_ADDRESS.
 
#define SLIST_HEAD(name, type)
 
uint8_t SearchFlags
Flags for a specific search, e.g. SEARCH_PROMPT.
 
GUI data wrapping an Alias.
 
String manipulation buffer.
 
The envelope/body of an email.
 
A set of email addresses.
 
Cache commonly-used patterns.
 
A simple (non-regex) pattern.
 
bool group_match
Check a group of Addresses.
 
union Pattern::@006112053024257132210207314205210350156165326341 p
 
bool all_addr
All Addresses in the list must match.
 
struct Group * group
Address group if group_match is set.
 
struct PatternList * child
Arguments to logical operation.
 
long min
Minimum for range checks.
 
bool string_match
Check a string for a match.
 
regex_t * regex
Compiled regex, for non-pattern matching.
 
SLIST_ENTRY(Pattern) entries
Linked list.
 
struct ListHead multi_cases
Multiple strings for ~I pattern.
 
char * str
String, if string_match is set.
 
bool is_alias
Is there an alias for this Address?
 
bool ign_case
Ignore case for local string_match searches.
 
long max
Maximum for range checks.
 
bool dynamic
Evaluate date ranges at run time.
 
short op
Operation, e.g. MUTT_PAT_SCORE.
 
bool sendmode
Evaluate searches in send-mode.
 
bool is_multi
Multiple case (only for ~I pattern now)
 
bool pat_not
Pattern should be inverted (not)