Mercurial > noffle
view src/filter.h @ 198:79e324213734 noffle
[svn] * packages/redhat/noffle.spec: Update to version to 1.1-1 and fix up some
items causing RPM3 vs RPM4 problems.
* configure,configure.in: Bump version to 1.1.1-unstable-develop, and add
--with-spooldir and --with-configfile options (idea due to Mirko Liss).
author | bears |
---|---|
date | Tue, 06 Nov 2001 21:22:19 +0000 |
parents | a4e9a20e50e5 |
children | 21200ce10e68 |
line wrap: on
line source
/* filter.h Article filtering. $Id: filter.h 313 2001-10-30 12:42:13Z bears $ */ #ifndef FILTER_H #define FILTER_H #include <sys/types.h> #include <regex.h> #include "fetchlist.h" #include "over.h" /* The possible actions in a filter. */ typedef enum { FILTER_FULL, FILTER_XOVER, FILTER_THREAD, FILTER_DISCARD, FILTER_DEFAULT } FilterAction; /* Representation of a rule. */ typedef enum { RULE_NEWSGROUP, /* Wildmat data */ RULE_SUBJECT, /* Regex data */ RULE_FROM, RULE_MSGID, RULE_BYTES_LT, RULE_BYTES_EQ, RULE_BYTES_GT, /* Number data */ RULE_LINES_LT, RULE_LINES_EQ, RULE_LINES_GT, RULE_NOREFS_LT, RULE_NOREFS_EQ, RULE_NOREFS_GT, RULE_XPOSTS_LT, RULE_XPOSTS_EQ, RULE_XPOSTS_GT } FilterRuleType; typedef union { regex_t regex; unsigned long amount; char *grp; } FilterRuleData; typedef struct { FilterRuleType type; FilterRuleData data; } FilterRule; /* A single filter is a collection of rules with an action. */ typedef struct { int nRules; int maxRules; FilterRule *rules; FilterAction action; } Filter; /* Add a filter to the list of filters. */ void Flt_addFilter( const Filter *f ); /* * Run the rules over the supplied overview. If a specific rule fires, * returns its action. If no rule fires, return the default read mode. */ FilterAction Flt_checkFilters( const char *thisGrp, const char *newsgroups, const Over *ov, FetchMode mode ); /* * Build and access a filter */ Filter * new_Filter( void ); void del_Filter( Filter *f ); FilterAction Flt_action( const Filter *f ); int Flt_nRules( const Filter *f ); Bool Flt_getNewsgroups( void ); FilterRule Flt_rule( const Filter *f, int ruleNo ); void Flt_setAction( Filter *f, FilterAction action ); void Flt_addRule( Filter *f, FilterRule rule ); #endif /* FILTER_H */