aboutsummaryrefslogtreecommitdiff
path: root/src/filter.h
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-09-05 10:00:53 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-09-05 10:00:53 +0000
commit3bf24b9336184fe9e28f7e09b9c5200a5f82b7d2 (patch)
tree51ccac6f26dcdf9fcfac1a7879477bfde2759b80 /src/filter.h
parent11776e5a524745b01ac145439ac2892a29bd0826 (diff)
moved more modules to libsylph.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@548 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/filter.h')
-rw-r--r--src/filter.h214
1 files changed, 0 insertions, 214 deletions
diff --git a/src/filter.h b/src/filter.h
deleted file mode 100644
index dc38047e..00000000
--- a/src/filter.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2005 Hiroyuki Yamamoto
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __FILTER_H__
-#define __FILTER_H__
-
-#include <glib.h>
-
-#include "folder.h"
-#include "procmsg.h"
-#include "utils.h"
-
-typedef struct _FilterCond FilterCond;
-typedef struct _FilterAction FilterAction;
-typedef struct _FilterRule FilterRule;
-typedef struct _FilterInfo FilterInfo;
-
-typedef enum
-{
- FLT_TIMING_ANY,
- FLT_TIMING_ON_RECEIVE,
- FLT_TIMING_MANUAL
-} FilterTiming;
-
-typedef enum
-{
- FLT_COND_HEADER,
- FLT_COND_ANY_HEADER,
- FLT_COND_TO_OR_CC,
- FLT_COND_BODY,
- FLT_COND_CMD_TEST,
- FLT_COND_SIZE_GREATER,
- FLT_COND_AGE_GREATER,
- FLT_COND_ACCOUNT
-} FilterCondType;
-
-typedef enum
-{
- FLT_CONTAIN,
- FLT_EQUAL,
- FLT_REGEX
-} FilterMatchType;
-
-typedef enum
-{
- FLT_NOT_MATCH = 1 << 0,
- FLT_CASE_SENS = 1 << 1
-} FilterMatchFlag;
-
-typedef enum
-{
- FLT_OR,
- FLT_AND
-} FilterBoolOp;
-
-typedef enum
-{
- FLT_ACTION_MOVE,
- FLT_ACTION_COPY,
- FLT_ACTION_NOT_RECEIVE,
- FLT_ACTION_DELETE,
- FLT_ACTION_EXEC,
- FLT_ACTION_EXEC_ASYNC,
- FLT_ACTION_MARK,
- FLT_ACTION_COLOR_LABEL,
- FLT_ACTION_MARK_READ,
- FLT_ACTION_FORWARD,
- FLT_ACTION_FORWARD_AS_ATTACHMENT,
- FLT_ACTION_REDIRECT,
- FLT_ACTION_STOP_EVAL,
- FLT_ACTION_NONE
-} FilterActionType;
-
-typedef enum
-{
- FLT_BY_NONE,
- FLT_BY_AUTO,
- FLT_BY_FROM,
- FLT_BY_TO,
- FLT_BY_SUBJECT
-} FilterCreateType;
-
-#define FLT_IS_NOT_MATCH(flag) ((flag & FLT_NOT_MATCH) != 0)
-#define FLT_IS_CASE_SENS(flag) ((flag & FLT_CASE_SENS) != 0)
-
-struct _FilterCond
-{
- FilterCondType type;
-
- gchar *header_name;
-
- gchar *str_value;
- gint int_value;
-
- FilterMatchType match_type;
- FilterMatchFlag match_flag;
-
- StrFindFunc match_func;
-};
-
-struct _FilterAction
-{
- FilterActionType type;
-
- gchar *str_value;
- gint int_value;
-};
-
-struct _FilterRule
-{
- gchar *name;
-
- FilterBoolOp bool_op;
-
- GSList *cond_list;
- GSList *action_list;
-
- FilterTiming timing;
- gboolean enabled;
-};
-
-struct _FilterInfo
-{
- PrefsAccount *account;
- MsgFlags flags;
-
- gboolean actions[FLT_ACTION_NONE];
- GSList *dest_list;
- FolderItem *move_dest;
- gboolean drop_done;
-};
-
-gint filter_apply (GSList *fltlist,
- const gchar *file,
- FilterInfo *fltinfo);
-gint filter_apply_msginfo (GSList *fltlist,
- MsgInfo *msginfo,
- FilterInfo *fltinfo);
-
-gint filter_action_exec (FilterRule *rule,
- MsgInfo *msginfo,
- const gchar *file,
- FilterInfo *fltinfo);
-
-gboolean filter_match_rule (FilterRule *rule,
- MsgInfo *msginfo,
- GSList *hlist,
- FilterInfo *fltinfo);
-
-/* read / write config */
-GSList *filter_xml_node_to_filter_list (GNode *node);
-void filter_read_config (void);
-void filter_write_config (void);
-
-/* for old filterrc */
-gchar *filter_get_str (FilterRule *rule);
-FilterRule *filter_read_str (const gchar *str);
-
-FilterRule *filter_rule_new (const gchar *name,
- FilterBoolOp bool_op,
- GSList *cond_list,
- GSList *action_list);
-FilterCond *filter_cond_new (FilterCondType type,
- FilterMatchType match_type,
- FilterMatchFlag match_flag,
- const gchar *header,
- const gchar *body);
-FilterAction *filter_action_new (FilterActionType type,
- const gchar *str);
-FilterInfo *filter_info_new (void);
-
-void filter_rule_rename_dest_path (FilterRule *rule,
- const gchar *old_path,
- const gchar *new_path);
-void filter_rule_delete_action_by_dest_path
- (FilterRule *rule,
- const gchar *path);
-
-void filter_list_rename_path (const gchar *old_path,
- const gchar *new_path);
-void filter_list_delete_path (const gchar *path);
-
-void filter_rule_match_type_str_to_enum (const gchar *type_str,
- FilterMatchType *type,
- FilterMatchFlag *flag);
-
-void filter_get_keyword_from_msg (MsgInfo *msginfo,
- gchar **header,
- gchar **key,
- FilterCreateType type);
-
-void filter_rule_list_free (GSList *fltlist);
-void filter_rule_free (FilterRule *rule);
-void filter_cond_list_free (GSList *cond_list);
-void filter_action_list_free (GSList *action_list);
-void filter_info_free (FilterInfo *info);
-
-#endif /* __FILTER_H__ */