/[mailutils]/mailutils/include/mailutils/libsieve.h
ViewVC logotype

Diff of /mailutils/include/mailutils/libsieve.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by gray, Fri Nov 8 15:52:57 2002 UTC revision 1.2 by gray, Tue Nov 12 16:27:47 2002 UTC
# Line 16  Line 16 
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
17    
18  #include <sys/types.h>  #include <sys/types.h>
19    #include <stdarg.h>
20  #include <mailutils/mailutils.h>  #include <mailutils/mailutils.h>
21    
22  typedef struct sieve_machine sieve_machine_t;  typedef struct sieve_machine sieve_machine_t;
23    
24  typedef int (*sieve_instr_t) __P((sieve_machine_t *mach, list_t *args));  typedef int (*sieve_handler_t) __P((sieve_machine_t *mach,
25                                        list_t args, list_t tags));
26    typedef int (*sieve_printf_t) __P((void *data, const char *fmt, va_list ap));
27    typedef int (*sieve_vprintf_t) __P((void *data, const char *fmt, va_list ap));
28    
29  typedef enum {  typedef enum {
30    SVT_VOID,    SVT_VOID,
# Line 32  typedef enum { Line 36  typedef enum {
36    SVT_VALUE_LIST    SVT_VALUE_LIST
37  } sieve_data_type;  } sieve_data_type;
38    
39    typedef struct sieve_runtime_tag sieve_runtime_tag_t;
40    
41  typedef struct {  typedef struct {
42    sieve_data_type type;    sieve_data_type type;
43    union {    union {
44      char *string;      char *string;
45      long number;      long number;
46      list_t list;      list_t list;
47        sieve_runtime_tag_t *tag;
48    } v;    } v;
49  } sieve_value_t;  } sieve_value_t;
50    
# Line 47  typedef struct { Line 54  typedef struct {
54    sieve_data_type argtype;    sieve_data_type argtype;
55  } sieve_tag_def_t;  } sieve_tag_def_t;
56    
57    struct sieve_runtime_tag {
58      int tag;
59      sieve_value_t *arg;
60    };
61    
62  typedef struct {  typedef struct {
63    char *name;    char *name;
64    int required;    int required;
65    sieve_instr_t instr;    sieve_handler_t handler;
66    int num_req_args;    int num_req_args;
67    sieve_data_type *req_args;    sieve_data_type *req_args;
68    int num_tags;    int num_tags;
# Line 59  typedef struct { Line 71  typedef struct {
71    
72    
73  void *sieve_alloc __P((size_t size));  void *sieve_alloc __P((size_t size));
74  int sieve_open_source __P((const char *name));  void *sieve_palloc __P((list_t *pool, size_t size));
75  int sieve_parse __P((const char *name));  void *sieve_prealloc __P((list_t *pool, void *ptr, size_t size));
76    void sieve_pfree __P((list_t *pool, void *ptr));
77    char *sieve_pstrdup __P((list_t *pool, const char *str));
78    
79    int sieve_compile __P((sieve_machine_t *mach, const char *name, void *data,
80                           sieve_printf_t errfn));
81    void sieve_set_debug __P((sieve_machine_t *mach, sieve_printf_t debug,
82                              int level));
83    
84  sieve_value_t * sieve_value_create __P((sieve_data_type type, void *data));  sieve_value_t * sieve_value_create __P((sieve_data_type type, void *data));
85    
86  sieve_register_t *sieve_test_lookup __P((const char *name));  sieve_register_t *sieve_test_lookup __P((const char *name));
87  sieve_register_t *sieve_action_lookup __P((const char *name));  sieve_register_t *sieve_action_lookup __P((const char *name));
88  int sieve_register_test __P((const char *name, sieve_instr_t instr,  int sieve_register_test __P((const char *name, sieve_handler_t handler,
89                               sieve_data_type *arg_types,                               sieve_data_type *arg_types,
90                               sieve_tag_def_t *tags, int required));                               sieve_tag_def_t *tags, int required));
91  int sieve_register_action __P((const char *name, sieve_instr_t instr,  int sieve_register_action __P((const char *name, sieve_handler_t handler,
92                                 sieve_data_type *arg_types,                                 sieve_data_type *arg_types,
93                                 sieve_tag_def_t *tags, int required));                                 sieve_tag_def_t *tags, int required));
94    
95  void sieve_slist_destroy __P((list_t *plist));  void sieve_slist_destroy __P((list_t *plist));
96  void sieve_require __P((list_t slist));  void sieve_require __P((list_t slist));
97    
98    void sieve_abort __P((sieve_machine_t *mach));

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26