Version 3.1
* configure.ac: version 3.1 * NEWS: Likewise. * libmu_sieve/comparator.c: Attend to FIXMEs. * libmu_sieve/conf.c: Likewise. * libmu_sieve/prog.c: Likewise. * libmu_sieve/runtime.c: Likewise. * libmu_sieve/sieve.y: Likewise. * libmu_sieve/util.c: Likewise. * libmu_sieve/variables.c: Likewise. * po/POTFILES.in: Add new files.
Showing
10 changed files
with
35 additions
and
25 deletions
... | @@ -5,7 +5,7 @@ See the end of file for copying conditions. | ... | @@ -5,7 +5,7 @@ See the end of file for copying conditions. |
5 | Please send mailutils bug reports to <bug-mailutils@gnu.org>. | 5 | Please send mailutils bug reports to <bug-mailutils@gnu.org>. |
6 | 6 | ||
7 | 7 | ||
8 | Version 3.0.90 (Git) | 8 | Version 3.1 - 2016-12-13 |
9 | 9 | ||
10 | * Sieve | 10 | * Sieve |
11 | 11 | ||
... | @@ -16,8 +16,8 @@ are implemented: | ... | @@ -16,8 +16,8 @@ are implemented: |
16 | variables - RFC 5229 | 16 | variables - RFC 5229 |
17 | environment - RFC 5183 | 17 | environment - RFC 5183 |
18 | 18 | ||
19 | The tools define the Sieve environment "location", and | 19 | The utilities define the Sieve environment "location", and |
20 | "phase" as follows: | 20 | "phase" as per the following table: |
21 | 21 | ||
22 | Utility | "location" | "phase" | 22 | Utility | "location" | "phase" |
23 | --------+-------------+-------- | 23 | --------+-------------+-------- | ... | ... |
... | @@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU General Public License along | ... | @@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU General Public License along |
16 | dnl with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. | 16 | dnl with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 | ||
18 | AC_PREREQ(2.63) | 18 | AC_PREREQ(2.63) |
19 | AC_INIT([GNU Mailutils], [3.0.90], [bug-mailutils@gnu.org], [mailutils], | 19 | AC_INIT([GNU Mailutils], [3.1], [bug-mailutils@gnu.org], [mailutils], |
20 | [http://mailutils.org]) | 20 | [http://mailutils.org]) |
21 | AC_CONFIG_SRCDIR([libmailutils/mailbox/mailbox.c]) | 21 | AC_CONFIG_SRCDIR([libmailutils/mailbox/mailbox.c]) |
22 | AC_CONFIG_AUX_DIR([build-aux]) | 22 | AC_CONFIG_AUX_DIR([build-aux]) |
... | @@ -32,7 +32,7 @@ AB_INIT | ... | @@ -32,7 +32,7 @@ AB_INIT |
32 | 32 | ||
33 | dnl Library versioning | 33 | dnl Library versioning |
34 | AC_SUBST(VI_CURRENT, 5) | 34 | AC_SUBST(VI_CURRENT, 5) |
35 | AC_SUBST(VI_REVISION, 0) | 35 | AC_SUBST(VI_REVISION, 1) |
36 | AC_SUBST(VI_AGE, 0) | 36 | AC_SUBST(VI_AGE, 0) |
37 | 37 | ||
38 | dnl Library paths | 38 | dnl Library paths | ... | ... |
... | @@ -266,7 +266,10 @@ mu_sieve_match_part_checker (mu_sieve_machine_t mach) | ... | @@ -266,7 +266,10 @@ mu_sieve_match_part_checker (mu_sieve_machine_t mach) |
266 | } | 266 | } |
267 | } | 267 | } |
268 | else | 268 | else |
269 | abort ();//FIXME | 269 | { |
270 | mu_error (_("%s:%d: INTERNAL ERROR, please report"), __FILE__, __LINE__); | ||
271 | abort (); | ||
272 | } | ||
270 | 273 | ||
271 | if (!compfun) | 274 | if (!compfun) |
272 | { | 275 | { |
... | @@ -400,7 +403,7 @@ i_ascii_numeric_is (mu_sieve_machine_t mach, | ... | @@ -400,7 +403,7 @@ i_ascii_numeric_is (mu_sieve_machine_t mach, |
400 | if (mu_isdigit (*str)) | 403 | if (mu_isdigit (*str)) |
401 | { | 404 | { |
402 | if (mu_isdigit (*text)) | 405 | if (mu_isdigit (*text)) |
403 | //FIXME: Error checking | 406 | /* FIXME: Error checking */ |
404 | return strtol (str, NULL, 10) == strtol (text, NULL, 10); | 407 | return strtol (str, NULL, 10) == strtol (text, NULL, 10); |
405 | else | 408 | else |
406 | return 0; | 409 | return 0; | ... | ... |
... | @@ -45,7 +45,6 @@ struct sieve_settings | ... | @@ -45,7 +45,6 @@ struct sieve_settings |
45 | }; | 45 | }; |
46 | static struct sieve_settings sieve_settings; | 46 | static struct sieve_settings sieve_settings; |
47 | 47 | ||
48 | /*FIXME: REMOVE BEGIN */ | ||
49 | static int | 48 | static int |
50 | _path_append (void *item, void *data) | 49 | _path_append (void *item, void *data) |
51 | { | 50 | { | ... | ... |
... | @@ -148,7 +148,7 @@ mu_i_sv_lint_command (struct mu_sieve_machine *mach, | ... | @@ -148,7 +148,7 @@ mu_i_sv_lint_command (struct mu_sieve_machine *mach, |
148 | 148 | ||
149 | exp_arg = reg->v.command.req_args ? reg->v.command.req_args : empty; | 149 | exp_arg = reg->v.command.req_args ? reg->v.command.req_args : empty; |
150 | 150 | ||
151 | /* Pass 1: consolidation */ | 151 | /* Pass 1: tag consolidation and argument checking */ |
152 | for (i = 0; i < node->v.command.argcount; i++) | 152 | for (i = 0; i < node->v.command.argcount; i++) |
153 | { | 153 | { |
154 | mu_sieve_value_t *val = start + i; | 154 | mu_sieve_value_t *val = start + i; |
... | @@ -223,9 +223,19 @@ mu_i_sv_lint_command (struct mu_sieve_machine *mach, | ... | @@ -223,9 +223,19 @@ mu_i_sv_lint_command (struct mu_sieve_machine *mach, |
223 | err = 1; | 223 | err = 1; |
224 | break; | 224 | break; |
225 | } | 225 | } |
226 | //FIXME | ||
227 | if (mu_list_foreach (chk_list, _compare_ptr, cf) == 0) | 226 | if (mu_list_foreach (chk_list, _compare_ptr, cf) == 0) |
228 | mu_list_append (chk_list, cf); | 227 | { |
228 | rc = mu_list_append (chk_list, cf); | ||
229 | if (rc) | ||
230 | { | ||
231 | mu_diag_at_locus (MU_LOG_ERROR, &mach->locus, | ||
232 | "mu_list_append: %s", | ||
233 | mu_strerror (rc)); | ||
234 | mu_i_sv_error (mach); | ||
235 | err = 1; | ||
236 | break; | ||
237 | } | ||
238 | } | ||
229 | } | 239 | } |
230 | } | 240 | } |
231 | else | 241 | else |
... | @@ -288,19 +298,19 @@ mu_i_sv_lint_command (struct mu_sieve_machine *mach, | ... | @@ -288,19 +298,19 @@ mu_i_sv_lint_command (struct mu_sieve_machine *mach, |
288 | 298 | ||
289 | if (node->v.command.tagcount) | 299 | if (node->v.command.tagcount) |
290 | { | 300 | { |
291 | /* Move tags to the end of the list */ | 301 | /* Pass 2: Move tags to the end of the list */ |
292 | for (i = 1; i < node->v.command.argcount; i++) | 302 | for (i = 1; i < node->v.command.argcount; i++) |
293 | { | 303 | { |
294 | int j;//FIXME | 304 | size_t j; |
295 | mu_sieve_value_t tmp = start[i]; | 305 | mu_sieve_value_t tmp = start[i]; |
296 | for (j = i - 1; j >= 0; j--) | 306 | for (j = i; j > 0; j--) |
297 | { | 307 | { |
298 | if (!tmp.tag && start[j].tag) | 308 | if (!tmp.tag && start[j - 1].tag) |
299 | start[j + 1] = start[j]; | 309 | start[j] = start[j - 1]; |
300 | else | 310 | else |
301 | break; | 311 | break; |
302 | } | 312 | } |
303 | start[j + 1] = tmp; | 313 | start[j] = tmp; |
304 | } | 314 | } |
305 | } | 315 | } |
306 | 316 | ... | ... |
... | @@ -228,7 +228,7 @@ int | ... | @@ -228,7 +228,7 @@ int |
228 | mu_sieve_set_dry_run (mu_sieve_machine_t mach, int val) | 228 | mu_sieve_set_dry_run (mu_sieve_machine_t mach, int val) |
229 | { | 229 | { |
230 | if (mach->state != mu_sieve_state_compiled) | 230 | if (mach->state != mu_sieve_state_compiled) |
231 | return EINVAL; //FIXME: another error code | 231 | return EINVAL; /* FIXME: another error code */ |
232 | return mach->dry_run = val; | 232 | return mach->dry_run = val; |
233 | } | 233 | } |
234 | 234 | ... | ... |
... | @@ -1007,10 +1007,8 @@ mu_i_sv_free_stringspace (mu_sieve_machine_t mach) | ... | @@ -1007,10 +1007,8 @@ mu_i_sv_free_stringspace (mu_sieve_machine_t mach) |
1007 | regex_t *rx = mach->stringspace[i].rx; | 1007 | regex_t *rx = mach->stringspace[i].rx; |
1008 | regfree (rx); | 1008 | regfree (rx); |
1009 | } | 1009 | } |
1010 | /* FIXME: Is it needed? | 1010 | /* There's no need to free mach->stringspace[i].exp, because |
1011 | if (mach->stringspace[i].exp) | 1011 | it is allocated in mach's memory pool */ |
1012 | free (mach->stringspace[i].exp); | ||
1013 | */ | ||
1014 | } | 1012 | } |
1015 | } | 1013 | } |
1016 | 1014 | ||
... | @@ -1575,7 +1573,6 @@ sieve_compile_strbuf (void *name) | ... | @@ -1575,7 +1573,6 @@ sieve_compile_strbuf (void *name) |
1575 | return MU_ERR_FAILURE; | 1573 | return MU_ERR_FAILURE; |
1576 | } | 1574 | } |
1577 | 1575 | ||
1578 | //FIXME: The API is clumsy | ||
1579 | int | 1576 | int |
1580 | mu_sieve_compile_buffer (mu_sieve_machine_t mach, | 1577 | mu_sieve_compile_buffer (mu_sieve_machine_t mach, |
1581 | const char *str, int strsize, | 1578 | const char *str, int strsize, | ... | ... |
... | @@ -81,7 +81,6 @@ mu_sieve_get_arg_untyped (mu_sieve_machine_t mach, size_t index) | ... | @@ -81,7 +81,6 @@ mu_sieve_get_arg_untyped (mu_sieve_machine_t mach, size_t index) |
81 | mach->tagcount, | 81 | mach->tagcount, |
82 | index); | 82 | index); |
83 | abort (); | 83 | abort (); |
84 | //FIXME mu_sieve_abort (mach); | ||
85 | } | 84 | } |
86 | 85 | ||
87 | return mach->valspace + mach->argstart + index; | 86 | return mach->valspace + mach->argstart + index; | ... | ... |
... | @@ -156,7 +156,7 @@ findprec (char const *name) | ... | @@ -156,7 +156,7 @@ findprec (char const *name) |
156 | for (i = 0; i < MU_ARRAY_SIZE (modprec); i++) | 156 | for (i = 0; i < MU_ARRAY_SIZE (modprec); i++) |
157 | if (strcmp (modprec[i].name, name) == 0) | 157 | if (strcmp (modprec[i].name, name) == 0) |
158 | return &modprec[i]; | 158 | return &modprec[i]; |
159 | mu_error ("%s:%d: INTERNAL ERROR", __FILE__, __LINE__); | 159 | mu_error (_("%s:%d: INTERNAL ERROR, please report"), __FILE__, __LINE__); |
160 | abort (); | 160 | abort (); |
161 | } | 161 | } |
162 | 162 | ... | ... |
... | @@ -38,6 +38,7 @@ libmu_auth/tls.c | ... | @@ -38,6 +38,7 @@ libmu_auth/tls.c |
38 | libmu_sieve/actions.c | 38 | libmu_sieve/actions.c |
39 | libmu_sieve/comparator.c | 39 | libmu_sieve/comparator.c |
40 | libmu_sieve/conf.c | 40 | libmu_sieve/conf.c |
41 | libmu_sieve/mem.c | ||
41 | libmu_sieve/prog.c | 42 | libmu_sieve/prog.c |
42 | libmu_sieve/relational.c | 43 | libmu_sieve/relational.c |
43 | libmu_sieve/require.c | 44 | libmu_sieve/require.c |
... | @@ -46,6 +47,7 @@ libmu_sieve/sieve.l | ... | @@ -46,6 +47,7 @@ libmu_sieve/sieve.l |
46 | libmu_sieve/sieve.y | 47 | libmu_sieve/sieve.y |
47 | libmu_sieve/tests.c | 48 | libmu_sieve/tests.c |
48 | libmu_sieve/util.c | 49 | libmu_sieve/util.c |
50 | libmu_sieve/variables.c | ||
49 | 51 | ||
50 | libmu_sieve/extensions/list.c | 52 | libmu_sieve/extensions/list.c |
51 | libmu_sieve/extensions/moderator.c | 53 | libmu_sieve/extensions/moderator.c | ... | ... |
-
Please register or sign in to post a comment