File: ext-date-common.h

package info (click to toggle)
dovecot 1:2.2.13-12~deb8u4
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 38,792 kB
  • sloc: ansic: 341,472; sh: 16,920; makefile: 5,393; cpp: 1,474; perl: 265; xml: 44; python: 34; pascal: 27
file content (83 lines) | stat: -rw-r--r-- 1,626 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/* Copyright (c) 2002-2013 Pigeonhole authors, see the included COPYING file
 */

#ifndef __EXT_DATE_COMMON_H
#define __EXT_DATE_COMMON_H

#include "sieve-common.h"

#include <time.h>

/*
 * Extension
 */

extern const struct sieve_extension_def date_extension;

bool ext_date_interpreter_load
	(const struct sieve_extension *ext, const struct sieve_runtime_env *renv,
		sieve_size_t *address ATTR_UNUSED);

/*
 * Tests
 */

extern const struct sieve_command_def date_test;
extern const struct sieve_command_def currentdate_test;

/*
 * Operations
 */

enum ext_date_opcode {
	EXT_DATE_OPERATION_DATE,
	EXT_DATE_OPERATION_CURRENTDATE
};

extern const struct sieve_operation_def date_operation;
extern const struct sieve_operation_def currentdate_operation;

/*
 * Zone string
 */

bool ext_date_parse_timezone(const char *zone, int *zone_offset_r);

/*
 * Current date
 */

time_t ext_date_get_current_date
	(const struct sieve_runtime_env *renv, int *zone_offset_r);

/*
 * Date part
 */

struct ext_date_part {
	const char *identifier;

	const char *(*get_string)(struct tm *tm, int zone_offset);
};

const struct ext_date_part *ext_date_part_find(const char *part);

const char *ext_date_part_extract
	(const struct ext_date_part *dpart, struct tm *tm, int zone_offset);

/*
 * Date stringlist
 */

enum ext_date_timezone_special {
	EXT_DATE_TIMEZONE_LOCAL    = 100,
	EXT_DATE_TIMEZONE_ORIGINAL = 101
};

struct sieve_stringlist *ext_date_stringlist_create
(const struct sieve_runtime_env *renv, struct sieve_stringlist *field_values,
	int time_zone, const struct ext_date_part *dpart);



#endif /* __EXT_DATE_COMMON_H */