diff --git a/src/lib-sieve/sieve-address-parts.c b/src/lib-sieve/sieve-address-parts.c index 595961096ae2e034a3fd39e6eb122b4c4e51c83b..84ba69530180895aaadd90c8b008aad1a7fa2c02 100644 --- a/src/lib-sieve/sieve-address-parts.c +++ b/src/lib-sieve/sieve-address-parts.c @@ -285,7 +285,6 @@ const struct sieve_address_part *sieve_core_address_parts[] = { &all_address_part, &local_address_part, &domain_address_part }; -const unsigned int sieve_core_address_parts_count = - (sizeof(sieve_core_address_parts) / sizeof(sieve_core_address_parts[0])); +const unsigned int sieve_core_address_parts_count = N_ELEMENTS(sieve_core_address_parts); diff --git a/src/lib-sieve/sieve-ast.h b/src/lib-sieve/sieve-ast.h index 1d97da1342601d156aec9815e795e790611da379..525bd293e4259142f5451d8acdfe248d6770a38e 100644 --- a/src/lib-sieve/sieve-ast.h +++ b/src/lib-sieve/sieve-ast.h @@ -1,5 +1,5 @@ -#ifndef __SIEVE_AST_H__ -#define __SIEVE_AST_H__ +#ifndef __SIEVE_AST_H +#define __SIEVE_AST_H #include "lib.h" #include "str.h" @@ -68,18 +68,18 @@ struct sieve_ast_argument { struct sieve_ast_argument *next; struct sieve_ast_argument *prev; - /* Parser-assigned data */ + /* Parser-assigned data */ union { string_t *str; struct sieve_ast_arg_list *strlist; const char *tag; int number; - } _value; + } _value; - unsigned int source_line; + unsigned int source_line; - /* Assigned during validation */ + /* Assigned during validation */ /* Argument associated with this ast element */ const struct sieve_argument *argument; @@ -236,4 +236,4 @@ void sieve_ast_unparse(struct sieve_ast *ast); #define sieve_ast_strlist_strc(str) sieve_ast_argument_strc(str) #define sieve_ast_strlist_count(list) __LIST_COUNT(list, _value.strlist) -#endif /* __SIEVE_AST_H__ */ +#endif /* __SIEVE_AST_H */ diff --git a/src/lib-sieve/sieve-binary.c b/src/lib-sieve/sieve-binary.c index 4357fddbff302937b294072b15bc7f5a86b8dcc9..552edc0923c3dd553d11edd681cffb0c65592348 100644 --- a/src/lib-sieve/sieve-binary.c +++ b/src/lib-sieve/sieve-binary.c @@ -297,17 +297,17 @@ static string_t *t_str_const(const void *cdata, size_t size) bool sieve_binary_read_string (struct sieve_binary *binary, sieve_size_t *address, string_t **str) { - sieve_size_t strlen = 0; + sieve_size_t strlen = 0; - if ( !sieve_binary_read_integer(binary, address, &strlen) ) - return FALSE; - - if ( strlen > ADDR_BYTES_LEFT(binary, address) ) - return FALSE; + if ( !sieve_binary_read_integer(binary, address, &strlen) ) + return FALSE; + + if ( strlen > ADDR_BYTES_LEFT(binary, address) ) + return FALSE; - *str = t_str_const(&ADDR_CODE_AT(binary, address), strlen); + *str = t_str_const(&ADDR_CODE_AT(binary, address), strlen); ADDR_JUMP(address, strlen); - return TRUE; + return TRUE; } diff --git a/src/lib-sieve/sieve-code.c b/src/lib-sieve/sieve-code.c index 4cc5eecce1a860199c0cc4f4e30f6c0262e18682..2cab25d84b1c6fa057f229f52416effe7445aedf 100644 --- a/src/lib-sieve/sieve-code.c +++ b/src/lib-sieve/sieve-code.c @@ -16,12 +16,12 @@ */ struct sieve_coded_stringlist { - struct sieve_binary *binary; - sieve_size_t start_address; - sieve_size_t end_address; - sieve_size_t current_offset; - int length; - int index; + struct sieve_binary *binary; + sieve_size_t start_address; + sieve_size_t end_address; + sieve_size_t current_offset; + int length; + int index; }; static struct sieve_coded_stringlist *sieve_coded_stringlist_create @@ -30,7 +30,7 @@ static struct sieve_coded_stringlist *sieve_coded_stringlist_create { struct sieve_coded_stringlist *strlist; - if ( end > sieve_binary_get_code_size(sbin) ) + if ( end > sieve_binary_get_code_size(sbin) ) return NULL; strlist = p_new(pool_datastack_create(), struct sieve_coded_stringlist, 1); @@ -41,33 +41,33 @@ static struct sieve_coded_stringlist *sieve_coded_stringlist_create strlist->length = length; strlist->index = 0; - return strlist; + return strlist; } bool sieve_coded_stringlist_next_item(struct sieve_coded_stringlist *strlist, string_t **str) { sieve_size_t address; - *str = NULL; + *str = NULL; - if ( strlist->index >= strlist->length ) - return TRUE; - else { - address = strlist->current_offset; + if ( strlist->index >= strlist->length ) + return TRUE; + else { + address = strlist->current_offset; - if ( sieve_binary_read_string(strlist->binary, &address, str) ) { - strlist->index++; - strlist->current_offset = address; - return TRUE; - } - } + if ( sieve_binary_read_string(strlist->binary, &address, str) ) { + strlist->index++; + strlist->current_offset = address; + return TRUE; + } + } - return FALSE; + return FALSE; } void sieve_coded_stringlist_reset(struct sieve_coded_stringlist *strlist) { - strlist->current_offset = strlist->start_address; - strlist->index = 0; + strlist->current_offset = strlist->start_address; + strlist->index = 0; } inline int sieve_coded_stringlist_get_length(struct sieve_coded_stringlist *strlist) @@ -229,7 +229,7 @@ const struct sieve_operand *sieve_operands[] = { }; const unsigned int sieve_operand_count = - (sizeof(sieve_operands) / sizeof(sieve_operands[0])); + N_ELEMENTS(sieve_operands); /* * Operand implementations @@ -240,7 +240,7 @@ const unsigned int sieve_operand_count = void sieve_opr_number_emit(struct sieve_binary *sbin, sieve_size_t number) { (void) sieve_operand_emit_code(sbin, SIEVE_OPERAND_NUMBER); - (void) sieve_binary_emit_integer(sbin, number); + (void) sieve_binary_emit_integer(sbin, number); } bool sieve_opr_number_dump(struct sieve_binary *sbin, sieve_size_t *address) @@ -284,9 +284,9 @@ static bool opr_number_dump(struct sieve_binary *sbin, sieve_size_t *address) sieve_size_t number = 0; if (sieve_binary_read_integer(sbin, address, &number) ) { - printf("NUM: %ld\n", (long) number); - - return TRUE; + printf("NUM: %ld\n", (long) number); + + return TRUE; } return FALSE; @@ -351,18 +351,18 @@ static void _print_string(string_t *str) printf("STR[%ld]: \"", (long) str_len(str)); while ( i < 40 && i < str_len(str) ) { - if ( sdata[i] > 31 ) - printf("%c", sdata[i]); - else - printf("."); + if ( sdata[i] > 31 ) + printf("%c", sdata[i]); + else + printf("."); i++; } if ( str_len(str) < 40 ) - printf("\"\n"); + printf("\"\n"); else - printf("...\n"); + printf("...\n"); } bool opr_string_dump(struct sieve_binary *sbin, sieve_size_t *address) @@ -373,9 +373,9 @@ bool opr_string_dump(struct sieve_binary *sbin, sieve_size_t *address) _print_string(str); return TRUE; - } + } - return FALSE; + return FALSE; } static bool opr_string_read @@ -389,17 +389,17 @@ static bool opr_string_read void sieve_opr_stringlist_emit_start (struct sieve_binary *sbin, unsigned int listlen, void **context) { - sieve_size_t *end_offset = t_new(sieve_size_t, 1); + sieve_size_t *end_offset = t_new(sieve_size_t, 1); /* Emit byte identifying the type of operand */ - (void) sieve_operand_emit_code(sbin, SIEVE_OPERAND_STRING_LIST); + (void) sieve_operand_emit_code(sbin, SIEVE_OPERAND_STRING_LIST); - /* Give the interpreter an easy way to skip over this string list */ - *end_offset = sieve_binary_emit_offset(sbin, 0); + /* Give the interpreter an easy way to skip over this string list */ + *end_offset = sieve_binary_emit_offset(sbin, 0); *context = (void *) end_offset; - /* Emit the length of the list */ - (void) sieve_binary_emit_integer(sbin, (int) listlen); + /* Emit the length of the list */ + (void) sieve_binary_emit_integer(sbin, (int) listlen); } void sieve_opr_stringlist_emit_item @@ -474,8 +474,8 @@ static bool opr_stringlist_dump { struct sieve_coded_stringlist *strlist; - if ( (strlist=opr_stringlist_read(sbin, address)) != NULL ) { - sieve_size_t pc; + if ( (strlist=opr_stringlist_read(sbin, address)) != NULL ) { + sieve_size_t pc; string_t *stritem; printf("STRLIST [%d] (END %08x)\n", @@ -500,17 +500,17 @@ static struct sieve_coded_stringlist *opr_stringlist_read_single { struct sieve_coded_stringlist *strlist; sieve_size_t strlen; - sieve_size_t pc = *address; + sieve_size_t pc = *address; if ( !sieve_binary_read_integer(sbin, address, &strlen) ) return NULL; strlist = sieve_coded_stringlist_create(sbin, pc, 1, *address + strlen); - /* Skip over the string for now */ - *address += strlen; + /* Skip over the string for now */ + *address += strlen; - return strlist; + return strlist; } static struct sieve_coded_stringlist *opr_stringlist_read @@ -518,9 +518,9 @@ static struct sieve_coded_stringlist *opr_stringlist_read { struct sieve_coded_stringlist *strlist; - sieve_size_t pc = *address; - sieve_size_t end; - sieve_size_t length = 0; + sieve_size_t pc = *address; + sieve_size_t end; + sieve_size_t length = 0; int end_offset; @@ -534,13 +534,12 @@ static struct sieve_coded_stringlist *opr_stringlist_read strlist = sieve_coded_stringlist_create(sbin, *address, length, end); - /* Skip over the string list for now */ - *address = end; + /* Skip over the string list for now */ + *address = end; - return strlist; + return strlist; } - /* * Opcodes */ @@ -577,14 +576,14 @@ const struct sieve_opcode *sieve_operation_read return NULL; } else { int ext_id = -1; - const struct sieve_extension *ext = - sieve_binary_extension_get_by_index - (sbin, opcode - SIEVE_OPCODE_EXT_OFFSET, &ext_id); + const struct sieve_extension *ext = + sieve_binary_extension_get_by_index + (sbin, opcode - SIEVE_OPCODE_EXT_OFFSET, &ext_id); - if ( ext != NULL ) - return ext->opcode; - else - return NULL; + if ( ext != NULL ) + return ext->opcode; + else + return NULL; } } @@ -619,22 +618,22 @@ extern const struct sieve_opcode tst_size_over_opcode; extern const struct sieve_opcode tst_size_under_opcode; const struct sieve_opcode *sieve_opcodes[] = { - &jmp_opcode, - &jmptrue_opcode, - &jmpfalse_opcode, - &stop_opcode, - &keep_opcode, - &discard_opcode, - - &tst_address_opcode, - &tst_header_opcode, - &tst_exists_opcode, - &tst_size_over_opcode, - &tst_size_under_opcode + &jmp_opcode, + &jmptrue_opcode, + &jmpfalse_opcode, + &stop_opcode, + &keep_opcode, + &discard_opcode, + + &tst_address_opcode, + &tst_header_opcode, + &tst_exists_opcode, + &tst_size_over_opcode, + &tst_size_under_opcode }; const unsigned int sieve_opcode_count = - (sizeof(sieve_opcodes) / sizeof(sieve_opcodes[0])); + N_ELEMENTS(sieve_opcodes); /* Code dump for core commands */ diff --git a/src/lib-sieve/sieve-code.h b/src/lib-sieve/sieve-code.h index 624aec2878ec7fdeab5476d610c4fb6130d1943c..b2df9bb8347043e99666ba968a4435ab3f9f88dc 100644 --- a/src/lib-sieve/sieve-code.h +++ b/src/lib-sieve/sieve-code.h @@ -80,12 +80,12 @@ unsigned int sieve_operand_optional_read void sieve_opr_number_emit(struct sieve_binary *sbin, sieve_size_t number); bool sieve_opr_number_dump(struct sieve_binary *sbin, sieve_size_t *address); bool sieve_opr_number_read - (struct sieve_binary *sbin, sieve_size_t *address, sieve_size_t *number); + (struct sieve_binary *sbin, sieve_size_t *address, sieve_size_t *number); void sieve_opr_string_emit(struct sieve_binary *sbin, string_t *str); bool sieve_opr_string_dump(struct sieve_binary *sbin, sieve_size_t *address); bool sieve_opr_string_read - (struct sieve_binary *sbin, sieve_size_t *address, string_t **str); + (struct sieve_binary *sbin, sieve_size_t *address, string_t **str); void sieve_opr_stringlist_emit_start (struct sieve_binary *sbin, unsigned int listlen, void **context); @@ -95,7 +95,7 @@ void sieve_opr_stringlist_emit_end (struct sieve_binary *sbin, void *context); bool sieve_opr_stringlist_dump(struct sieve_binary *sbin, sieve_size_t *address); struct sieve_coded_stringlist *sieve_opr_stringlist_read - (struct sieve_binary *sbin, sieve_size_t *address); + (struct sieve_binary *sbin, sieve_size_t *address); /* Opcode: identifies what's to be done */ diff --git a/src/lib-sieve/sieve-commands-private.h b/src/lib-sieve/sieve-commands-private.h index 36fa6a8d9e3951fe831196a5690d3df26db37e95..9ec96a04580dd18fa9844916c66a7d6b495b67da 100644 --- a/src/lib-sieve/sieve-commands-private.h +++ b/src/lib-sieve/sieve-commands-private.h @@ -1,5 +1,5 @@ -#ifndef __SIEVE_COMMANDS_PRIVATE_H__ -#define __SIEVE_COMMANDS_PRIVATE_H__ +#ifndef __SIEVE_COMMANDS_PRIVATE_H +#define __SIEVE_COMMANDS_PRIVATE_H #include "sieve-common.h" #include "sieve-commands.h" @@ -75,5 +75,5 @@ extern const unsigned int sieve_core_commands_count; extern const struct sieve_command sieve_core_tests[]; extern const unsigned int sieve_core_tests_count; -#endif /* __SIEVE_COMMANDS_PRIVATE_H__ */ +#endif /* __SIEVE_COMMANDS_PRIVATE_H */ diff --git a/src/lib-sieve/sieve-commands.c b/src/lib-sieve/sieve-commands.c index 73c055b41965ae0d1e0457ebe163f9e649de6deb..44b6772c579969a2a5344c01bb8a46af137d64c1 100644 --- a/src/lib-sieve/sieve-commands.c +++ b/src/lib-sieve/sieve-commands.c @@ -119,8 +119,7 @@ const struct sieve_command sieve_core_tests[] = { { "allof", SCT_TEST, NULL, tst_allof_validate, NULL, tst_allof_generate } }; -const unsigned int sieve_core_tests_count = - (sizeof(sieve_core_tests) / sizeof(sieve_core_tests[0])); +const unsigned int sieve_core_tests_count = N_ELEMENTS(sieve_core_tests); const struct sieve_command sieve_core_commands[] = { { "stop", SCT_COMMAND, NULL, NULL, cmd_stop_generate, NULL }, @@ -133,8 +132,7 @@ const struct sieve_command sieve_core_commands[] = { { "redirect", SCT_COMMAND, NULL, cmd_redirect_validate, NULL, NULL } }; -const unsigned int sieve_core_commands_count = - (sizeof(sieve_core_commands) / sizeof(sieve_core_commands[0])); +const unsigned int sieve_core_commands_count = N_ELEMENTS(sieve_core_commands); struct sieve_command_context *sieve_command_prev_context (struct sieve_command_context *context) diff --git a/src/lib-sieve/sieve-common.h b/src/lib-sieve/sieve-common.h index 2937a1b74de85a577a92df843354e5bd10bc0b56..e6ed4eb58e03d91d17b6f965e3857eda3c5c8688 100644 --- a/src/lib-sieve/sieve-common.h +++ b/src/lib-sieve/sieve-common.h @@ -1,5 +1,5 @@ -#ifndef __SIEVE_COMMON_H__ -#define __SIEVE_COMMON_H__ +#ifndef __SIEVE_COMMON_H +#define __SIEVE_COMMON_H /* * Predeclarations @@ -62,4 +62,4 @@ struct sieve_mail_context { const char *mailbox; }; -#endif +#endif /* __SIEVE_COMMON_H */ diff --git a/src/lib-sieve/sieve-comparators.c b/src/lib-sieve/sieve-comparators.c index 3847df7f2fcac40699af2083860922e0ae271495..7cd416a769224188c60264085c48a3e93a47bf59 100644 --- a/src/lib-sieve/sieve-comparators.c +++ b/src/lib-sieve/sieve-comparators.c @@ -332,7 +332,7 @@ const struct sieve_comparator *sieve_core_comparators[] = { }; const unsigned int sieve_core_comparators_count = - (sizeof(sieve_core_comparators) / sizeof(sieve_core_comparators[0])); + N_ELEMENTS(sieve_core_comparators); static int cmp_i_octet_compare(const void *val1, size_t val1_size, const void *val2, size_t val2_size) diff --git a/src/lib-sieve/sieve-error.c b/src/lib-sieve/sieve-error.c index 8228c05c743f7fbb4aa342e457fdc33e67ef01f6..ba0207fdfed31d613d87073f4b9a0c65d0ce318e 100644 --- a/src/lib-sieve/sieve-error.c +++ b/src/lib-sieve/sieve-error.c @@ -45,10 +45,10 @@ void sieve_verror(struct sieve_error_handler *ehandler, unsigned int line, const /* FIXME: This seems cumbersome.. */ t_push(); nfmt = t_strdup_printf("%d: error: %s.\n", line, fmt); - vprintf(nfmt, args); - t_pop(); + vprintf(nfmt, args); + t_pop(); - ehandler->errors++; + ehandler->errors++; } void sieve_vwarning(struct sieve_error_handler *ehandler, unsigned int line, const char *fmt, va_list args) @@ -58,10 +58,10 @@ void sieve_vwarning(struct sieve_error_handler *ehandler, unsigned int line, con /* FIXME: This seems cumbersome.. */ t_push(); nfmt = t_strdup_printf("%d: warning: %s.\n", line, fmt); - vprintf(nfmt, args); - t_pop(); + vprintf(nfmt, args); + t_pop(); - ehandler->warnings++; + ehandler->warnings++; } unsigned int sieve_get_errors(struct sieve_error_handler *ehandler) { diff --git a/src/lib-sieve/sieve-error.h b/src/lib-sieve/sieve-error.h index 914be6916b2b3bdb6a8b57838399b1f3de610077..0430f34482beaf8523e559215cb646c2360eb0f3 100644 --- a/src/lib-sieve/sieve-error.h +++ b/src/lib-sieve/sieve-error.h @@ -1,5 +1,5 @@ -#ifndef __SIEVE_ERROR_H__ -#define __SIEVE_ERROR_H__ +#ifndef __SIEVE_ERROR_H +#define __SIEVE_ERROR_H #include <stdarg.h> @@ -18,4 +18,4 @@ unsigned int sieve_get_warnings(struct sieve_error_handler *ehandler); struct sieve_error_handler *sieve_error_handler_create(); -#endif /* __SIEVE_ERROR_H__ */ +#endif /* __SIEVE_ERROR_H */ diff --git a/src/lib-sieve/sieve-extensions.c b/src/lib-sieve/sieve-extensions.c index 7b7580c4ff4d0f31c7165778d3b73214caaec2ae..438d02b54a3a3b964d9364a96529967a1762cd0b 100644 --- a/src/lib-sieve/sieve-extensions.c +++ b/src/lib-sieve/sieve-extensions.c @@ -31,7 +31,7 @@ const struct sieve_extension *sieve_core_extensions[] = { }; const unsigned int sieve_core_extensions_count = - (sizeof(sieve_core_extensions) / sizeof(sieve_core_extensions[0])); + N_ELEMENTS(sieve_core_extensions); /* Extension state */ @@ -129,19 +129,19 @@ int sieve_extension_get_by_name(const char *name, const struct sieve_extension * *ext = ereg->extension; - return ereg->id; + return ereg->id; } int sieve_extension_get_id(const struct sieve_extension *extension) { - struct sieve_extension_registration *ereg = - (struct sieve_extension_registration *) - hash_lookup(extension_index, extension->name); + struct sieve_extension_registration *ereg = + (struct sieve_extension_registration *) + hash_lookup(extension_index, extension->name); if ( ereg == NULL ) return -1; - return ereg->id; + return ereg->id; } static void sieve_extensions_deinit_registry() diff --git a/src/lib-sieve/sieve-generator.h b/src/lib-sieve/sieve-generator.h index 8aaa894bbc89be7ddd1cbb3e3a32c8b91ed86446..47606e85393fc4bcedf18d3065cf852ac74da6c0 100644 --- a/src/lib-sieve/sieve-generator.h +++ b/src/lib-sieve/sieve-generator.h @@ -1,5 +1,5 @@ -#ifndef __SIEVE_GENERATOR_H__ -#define __SIEVE_GENERATOR_H__ +#ifndef __SIEVE_GENERATOR_H +#define __SIEVE_GENERATOR_H #include "sieve-ast.h" #include "sieve-code.h" @@ -62,5 +62,5 @@ bool sieve_generate_test(struct sieve_generator *generator, struct sieve_ast_nod struct sieve_jumplist *jlist, bool jump_true); struct sieve_binary *sieve_generator_run(struct sieve_generator *genarator); -#endif +#endif /* __SIEVE_GENERATOR_H */ diff --git a/src/lib-sieve/sieve-interpreter.c b/src/lib-sieve/sieve-interpreter.c index a23d67f84099b74afab4f3b8530eeb572c8d4409..e323bc14fc0bd6f7eb704e48d3dfe4cd52b3adc9 100644 --- a/src/lib-sieve/sieve-interpreter.c +++ b/src/lib-sieve/sieve-interpreter.c @@ -159,9 +159,9 @@ bool sieve_stringlist_match while ( sieve_coded_stringlist_next_item(key_list, &key_item) && key_item != NULL ) { if ( cmp->compare(value, strlen(value), str_c(key_item), str_len(key_item)) == 0 ) return TRUE; - } + } - return FALSE; + return FALSE; } /* Code Dump */ diff --git a/src/lib-sieve/sieve-interpreter.h b/src/lib-sieve/sieve-interpreter.h index 0898a708766fc6585f443fd9dcfc6059f867fdae..de07dd19adbe4fa89100666953b9c5f138139964 100644 --- a/src/lib-sieve/sieve-interpreter.h +++ b/src/lib-sieve/sieve-interpreter.h @@ -1,5 +1,5 @@ -#ifndef __SIEVE_INTERPRETER_H__ -#define __SIEVE_INTERPRETER_H__ +#ifndef __SIEVE_INTERPRETER_H +#define __SIEVE_INTERPRETER_H #include "lib.h" #include "array.h" @@ -61,4 +61,4 @@ struct sieve_result *sieve_interpreter_run (struct sieve_interpreter *interp, struct mail *mail); -#endif +#endif /* __SIEVE_INTERPRETER_H */ diff --git a/src/lib-sieve/sieve-lexer.c b/src/lib-sieve/sieve-lexer.c index 4b08cc1b4efa738a763cc57a1324728d9566d6ff..7f34918e4f36767bba67fa390f1c41e63cc81d85 100644 --- a/src/lib-sieve/sieve-lexer.c +++ b/src/lib-sieve/sieve-lexer.c @@ -91,7 +91,7 @@ static __inline__ int sieve_lexer_curchar(struct sieve_lexer *lexer) { if ( lexer->buffer == NULL ) return -1; - return lexer->buffer[lexer->buffer_pos]; + return lexer->buffer[lexer->buffer_pos]; } const char *sieve_lexer_token_string(struct sieve_lexer *lexer) @@ -157,17 +157,17 @@ void sieve_lexer_print_token(struct sieve_lexer *lexer) } } -__inline__ enum sieve_token_type sieve_lexer_current_token(struct sieve_lexer *lexer) { +inline enum sieve_token_type sieve_lexer_current_token(struct sieve_lexer *lexer) { return lexer->token_type; } -__inline__ const string_t *sieve_lexer_token_str(struct sieve_lexer *lexer) { +inline const string_t *sieve_lexer_token_str(struct sieve_lexer *lexer) { i_assert( lexer->token_type == STT_STRING ); return lexer->token_str_value; } -__inline__ const char *sieve_lexer_token_ident(struct sieve_lexer *lexer) { +inline const char *sieve_lexer_token_ident(struct sieve_lexer *lexer) { i_assert( lexer->token_type == STT_TAG || lexer->token_type == STT_IDENTIFIER); @@ -175,17 +175,17 @@ __inline__ const char *sieve_lexer_token_ident(struct sieve_lexer *lexer) { return str_c(lexer->token_str_value); } -__inline__ int sieve_lexer_token_int(struct sieve_lexer *lexer) { +inline int sieve_lexer_token_int(struct sieve_lexer *lexer) { i_assert(lexer->token_type == STT_NUMBER); return lexer->token_int_value; } -__inline__ bool sieve_lexer_eof(struct sieve_lexer *lexer) { +inline bool sieve_lexer_eof(struct sieve_lexer *lexer) { return lexer->token_type == STT_EOF; } -__inline__ int sieve_lexer_current_line(struct sieve_lexer *lexer) { +inline int sieve_lexer_current_line(struct sieve_lexer *lexer) { return lexer->current_line; } @@ -246,13 +246,17 @@ bool sieve_lexer_scan_raw_token(struct sieve_lexer *lexer) return TRUE; } else if ( sieve_lexer_curchar(lexer) == -1 ) { - sieve_lexer_error(lexer, "end of file before end of bracket comment ('/* ... */') started at line %d", start_line); + sieve_lexer_error(lexer, + "end of file before end of bracket comment ('/* ... */') " + "started at line %d", start_line); lexer->token_type = STT_ERROR; return FALSE; } } else if ( sieve_lexer_curchar(lexer) == -1 ) { - sieve_lexer_error(lexer, "end of file before end of bracket comment ('/* ... */') started at line %d", start_line); + sieve_lexer_error(lexer, + "end of file before end of bracket comment ('/* ... */') " + "started at line %d", start_line); lexer->token_type = STT_ERROR; return FALSE; @@ -295,7 +299,9 @@ bool sieve_lexer_scan_raw_token(struct sieve_lexer *lexer) while ( sieve_lexer_curchar(lexer) != '"' ) { if ( sieve_lexer_curchar(lexer) == -1 ) { - sieve_lexer_error(lexer, "end of file before end of quoted string started at line %d", start_line); + sieve_lexer_error(lexer, + "end of file before end of quoted string " + "started at line %d", start_line); lexer->token_type = STT_ERROR; return FALSE; } @@ -355,150 +361,151 @@ bool sieve_lexer_scan_raw_token(struct sieve_lexer *lexer) /* number */ if ( IS_DIGIT(sieve_lexer_curchar(lexer)) ) { int value = DIGIT_VAL(sieve_lexer_curchar(lexer)); - sieve_lexer_shift(lexer); + sieve_lexer_shift(lexer); - while ( IS_DIGIT(sieve_lexer_curchar(lexer)) ) { - value = value * 10 + DIGIT_VAL(sieve_lexer_curchar(lexer)); - sieve_lexer_shift(lexer); - } + while ( IS_DIGIT(sieve_lexer_curchar(lexer)) ) { + value = value * 10 + DIGIT_VAL(sieve_lexer_curchar(lexer)); + sieve_lexer_shift(lexer); + } - switch ( sieve_lexer_curchar(lexer) ) { - case 'K': /* Kilo */ - value *= 1024; - sieve_lexer_shift(lexer); - break; - case 'M': /* Mega */ - value *= 1024*1024; - sieve_lexer_shift(lexer); - break; - case 'G': /* Giga */ - value *= 1024*1024*1024; - sieve_lexer_shift(lexer); - break; - default: - /* Next token */ - break; - } + switch ( sieve_lexer_curchar(lexer) ) { + case 'K': /* Kilo */ + value *= 1024; + sieve_lexer_shift(lexer); + break; + case 'M': /* Mega */ + value *= 1024*1024; + sieve_lexer_shift(lexer); + break; + case 'G': /* Giga */ + value *= 1024*1024*1024; + sieve_lexer_shift(lexer); + break; + default: + /* Next token */ + break; + } - lexer->token_type = STT_NUMBER; - lexer->token_int_value = value; - return TRUE; + lexer->token_type = STT_NUMBER; + lexer->token_int_value = value; + return TRUE; - /* identifier / tag */ - } else if ( IS_ALPHA(sieve_lexer_curchar(lexer)) || - sieve_lexer_curchar(lexer) == '_' || - sieve_lexer_curchar(lexer) == ':' ) { + /* identifier / tag */ + } else if ( IS_ALPHA(sieve_lexer_curchar(lexer)) || + sieve_lexer_curchar(lexer) == '_' || + sieve_lexer_curchar(lexer) == ':' ) { - enum sieve_token_type type = STT_IDENTIFIER; - str = str_new(lexer->pool, 16); - lexer->token_str_value = str; + enum sieve_token_type type = STT_IDENTIFIER; + str = str_new(lexer->pool, 16); + lexer->token_str_value = str; - /* If it starts with a ':' it is a tag and not an identifier */ - if ( sieve_lexer_curchar(lexer) == ':' ) { - sieve_lexer_shift(lexer); // discard colon - type = STT_TAG; + /* If it starts with a ':' it is a tag and not an identifier */ + if ( sieve_lexer_curchar(lexer) == ':' ) { + sieve_lexer_shift(lexer); // discard colon + type = STT_TAG; - /* First character still can't be a DIGIT */ - if ( IS_ALPHA(sieve_lexer_curchar(lexer)) || - sieve_lexer_curchar(lexer) == '_' ) { - str_append_c(str, sieve_lexer_curchar(lexer)); - sieve_lexer_shift(lexer); - } else { - /* Hmm, otherwise it is just a spurious colon */ - lexer->token_type = STT_COLON; - return TRUE; - } - } else { - str_append_c(str, sieve_lexer_curchar(lexer)); - sieve_lexer_shift(lexer); - } + /* First character still can't be a DIGIT */ + if ( IS_ALPHA(sieve_lexer_curchar(lexer)) || + sieve_lexer_curchar(lexer) == '_' ) { + str_append_c(str, sieve_lexer_curchar(lexer)); + sieve_lexer_shift(lexer); + } else { + /* Hmm, otherwise it is just a spurious colon */ + lexer->token_type = STT_COLON; + return TRUE; + } + } else { + str_append_c(str, sieve_lexer_curchar(lexer)); + sieve_lexer_shift(lexer); + } - /* Scan the rest of the identifier */ - while ( IS_ALPHA(sieve_lexer_curchar(lexer)) || - IS_ALPHA(sieve_lexer_curchar(lexer)) || - sieve_lexer_curchar(lexer) == '_' ) { - str_append_c(str, sieve_lexer_curchar(lexer)); - sieve_lexer_shift(lexer); - } + /* Scan the rest of the identifier */ + while ( IS_ALPHA(sieve_lexer_curchar(lexer)) || + IS_ALPHA(sieve_lexer_curchar(lexer)) || + sieve_lexer_curchar(lexer) == '_' ) { + str_append_c(str, sieve_lexer_curchar(lexer)); + sieve_lexer_shift(lexer); + } - /* Is this in fact a multiline text string ? */ - if ( sieve_lexer_curchar(lexer) == ':' && - type == STT_IDENTIFIER && str_len(str) == 4 && - strncasecmp(str_c(str), "text", 4) == 0 ) { - sieve_lexer_shift(lexer); // discard colon + /* Is this in fact a multiline text string ? */ + if ( sieve_lexer_curchar(lexer) == ':' && + type == STT_IDENTIFIER && str_len(str) == 4 && + strncasecmp(str_c(str), "text", 4) == 0 ) { + sieve_lexer_shift(lexer); // discard colon - /* Discard SP and HTAB whitespace */ - while ( sieve_lexer_curchar(lexer) == ' ' || - sieve_lexer_curchar(lexer) == '\t' ) - sieve_lexer_shift(lexer); + /* Discard SP and HTAB whitespace */ + while ( sieve_lexer_curchar(lexer) == ' ' || + sieve_lexer_curchar(lexer) == '\t' ) + sieve_lexer_shift(lexer); - /* Discard hash comment or handle single CRLF */ - if ( sieve_lexer_curchar(lexer) == '#' ) { - while ( sieve_lexer_curchar(lexer) != '\n' ) - sieve_lexer_shift(lexer); - } else if ( sieve_lexer_curchar(lexer) == '\r' ) { - sieve_lexer_shift(lexer); - } + /* Discard hash comment or handle single CRLF */ + if ( sieve_lexer_curchar(lexer) == '#' ) { + while ( sieve_lexer_curchar(lexer) != '\n' ) + sieve_lexer_shift(lexer); + } else if ( sieve_lexer_curchar(lexer) == '\r' ) { + sieve_lexer_shift(lexer); + } - /* Terminating LF required */ - if ( sieve_lexer_curchar(lexer) == '\n' ) { - sieve_lexer_shift(lexer); - } else { - if ( sieve_lexer_curchar(lexer) == -1 ) { - sieve_lexer_error(lexer, "end of file before end of multi-line string"); - } else { - sieve_lexer_error(lexer, "invalid character '%c' after 'text:' in multiline string", - sieve_lexer_curchar(lexer)); - } - lexer->token_type = STT_ERROR; - return FALSE; - } + /* Terminating LF required */ + if ( sieve_lexer_curchar(lexer) == '\n' ) { + sieve_lexer_shift(lexer); + } else { + if ( sieve_lexer_curchar(lexer) == -1 ) { + sieve_lexer_error(lexer, "end of file before end of multi-line string"); + } else { + sieve_lexer_error(lexer, "invalid character '%c' after 'text:' in multiline string", + sieve_lexer_curchar(lexer)); + } + + lexer->token_type = STT_ERROR; + return FALSE; + } - /* Start over */ - str_truncate(str, 0); + /* Start over */ + str_truncate(str, 0); - /* Parse literal lines */ - while ( TRUE ) { - /* Remove dot-stuffing or detect end of text */ - if ( sieve_lexer_curchar(lexer) == '.' ) { - bool cr_shifted = FALSE; - sieve_lexer_shift(lexer); + /* Parse literal lines */ + while ( TRUE ) { + /* Remove dot-stuffing or detect end of text */ + if ( sieve_lexer_curchar(lexer) == '.' ) { + bool cr_shifted = FALSE; + sieve_lexer_shift(lexer); - /* Check for CRLF */ - if ( sieve_lexer_curchar(lexer) == '\r' ) - sieve_lexer_shift(lexer); + /* Check for CRLF */ + if ( sieve_lexer_curchar(lexer) == '\r' ) + sieve_lexer_shift(lexer); - if ( sieve_lexer_curchar(lexer) == '\n' ) { - sieve_lexer_shift(lexer); - lexer->token_type = STT_STRING; - return TRUE; - } else if ( cr_shifted ) - str_append_c(str, '\r'); - } + if ( sieve_lexer_curchar(lexer) == '\n' ) { + sieve_lexer_shift(lexer); + lexer->token_type = STT_STRING; + return TRUE; + } else if ( cr_shifted ) + str_append_c(str, '\r'); + } - /* Scan the rest of the line */ - while ( sieve_lexer_curchar(lexer) != '\n' ) { - if ( sieve_lexer_curchar(lexer) == -1 ) { - sieve_lexer_error(lexer, "end of file before end of multi-line string"); - lexer->token_type = STT_ERROR; - return FALSE; - } + /* Scan the rest of the line */ + while ( sieve_lexer_curchar(lexer) != '\n' ) { + if ( sieve_lexer_curchar(lexer) == -1 ) { + sieve_lexer_error(lexer, "end of file before end of multi-line string"); + lexer->token_type = STT_ERROR; + return FALSE; + } - str_append_c(str, sieve_lexer_curchar(lexer)); - sieve_lexer_shift(lexer); - } - str_append_c(str, '\n'); - sieve_lexer_shift(lexer); - } + str_append_c(str, sieve_lexer_curchar(lexer)); + sieve_lexer_shift(lexer); + } + str_append_c(str, '\n'); + sieve_lexer_shift(lexer); + } - i_unreached(); - lexer->token_type = STT_ERROR; - return FALSE; - } + i_unreached(); + lexer->token_type = STT_ERROR; + return FALSE; + } - lexer->token_type = type; - return TRUE; - } + lexer->token_type = type; + return TRUE; + } /* Error (unknown character and EOF handled already) */ if ( lexer->token_type != STT_GARBAGE ) diff --git a/src/lib-sieve/sieve-lexer.h b/src/lib-sieve/sieve-lexer.h index 110268b512edf42af5945eeb2bd867db78a57453..c2f56c3522d0a61db189a3e5115288faa0f0a728 100644 --- a/src/lib-sieve/sieve-lexer.h +++ b/src/lib-sieve/sieve-lexer.h @@ -1,40 +1,40 @@ -#ifndef __SIEVE_LEXER_H__ -#define __SIEVE_LEXER_H__ +#ifndef __SIEVE_LEXER_H +#define __SIEVE_LEXER_H #include "lib.h" #include "sieve-error.h" enum sieve_token_type { - STT_NONE, - STT_WHITESPACE, - STT_EOF, + STT_NONE, + STT_WHITESPACE, + STT_EOF, - STT_NUMBER, - STT_IDENTIFIER, - STT_TAG, - STT_STRING, + STT_NUMBER, + STT_IDENTIFIER, + STT_TAG, + STT_STRING, - STT_RBRACKET, - STT_LBRACKET, - STT_RCURLY, - STT_LCURLY, - STT_RSQUARE, - STT_LSQUARE, - STT_SEMICOLON, - STT_COMMA, + STT_RBRACKET, + STT_LBRACKET, + STT_RCURLY, + STT_LCURLY, + STT_RSQUARE, + STT_LSQUARE, + STT_SEMICOLON, + STT_COMMA, - /* These are currently not used in the lexical specification, but a token - * is assigned to these to generate proper error messages (these are - * technically not garbage and possibly part of mistyped but otherwise - * valid tokens). - */ - STT_SLASH, - STT_COLON, + /* These are currently not used in the lexical specification, but a token + * is assigned to these to generate proper error messages (these are + * technically not garbage and possibly part of mistyped but otherwise + * valid tokens). + */ + STT_SLASH, + STT_COLON, - /* Error tokens */ - STT_GARBAGE, /* Error reporting deferred to parser */ - STT_ERROR /* Lexer is responsible for error, parser won't report additional errors */ + /* Error tokens */ + STT_GARBAGE, /* Error reporting deferred to parser */ + STT_ERROR /* Lexer is responsible for error, parser won't report additional errors */ }; struct sieve_token; @@ -48,11 +48,11 @@ bool sieve_lexer_skip_token(struct sieve_lexer *lexer); const char *sieve_lexer_token_string(struct sieve_lexer *lexer); void sieve_lexer_print_token(struct sieve_lexer *lexer); -__inline__ enum sieve_token_type sieve_lexer_current_token(struct sieve_lexer *lexer); -__inline__ const string_t *sieve_lexer_token_str(struct sieve_lexer *lexer); -__inline__ const char *sieve_lexer_token_ident(struct sieve_lexer *lexer); -__inline__ int sieve_lexer_token_int(struct sieve_lexer *lexer); -__inline__ int sieve_lexer_current_line(struct sieve_lexer *lexer); -__inline__ bool sieve_lexer_eof(struct sieve_lexer *lexer); +inline enum sieve_token_type sieve_lexer_current_token(struct sieve_lexer *lexer); +inline const string_t *sieve_lexer_token_str(struct sieve_lexer *lexer); +inline const char *sieve_lexer_token_ident(struct sieve_lexer *lexer); +inline int sieve_lexer_token_int(struct sieve_lexer *lexer); +inline int sieve_lexer_current_line(struct sieve_lexer *lexer); +inline bool sieve_lexer_eof(struct sieve_lexer *lexer); -#endif /* __SIEVE_LEXER_H__ */ +#endif /* __SIEVE_LEXER_H */ diff --git a/src/lib-sieve/sieve-parser.c b/src/lib-sieve/sieve-parser.c index 77253862509cd18aa048544ba08580144338b784..5b0638ad49defeb11819f28ef411b6e6b7b09ceb 100644 --- a/src/lib-sieve/sieve-parser.c +++ b/src/lib-sieve/sieve-parser.c @@ -16,7 +16,7 @@ #define SIEVE_READ_BLOCK_SIZE (1024*8) #define sieve_parser_error(parser, ...) \ - { \ + { \ /* Don't report a parse error if the lexer complained already */ \ if ( sieve_lexer_current_token(parser->lexer) != STT_ERROR ) \ sieve_error(parser->ehandler, sieve_lexer_current_line(parser->lexer), __VA_ARGS__); \ @@ -67,7 +67,7 @@ struct sieve_parser *sieve_parser_create(int fd, struct sieve_ast *ast, struct s void sieve_parser_free(struct sieve_parser *parser) { if (parser->input != NULL ) - i_stream_unref(&parser->input); + i_stream_unref(&parser->input); sieve_ast_unref(&parser->ast); @@ -346,7 +346,7 @@ bool sieve_parser_run(struct sieve_parser *parser) sieve_lexer_skip_token(parser->lexer); if ( sieve_parse_commands(parser, parser->ast->root) ) { - if ( sieve_lexer_current_token(parser->lexer) != STT_EOF ) { + if ( sieve_lexer_current_token(parser->lexer) != STT_EOF ) { sieve_parser_error(parser, "unexpected token %s found at (the presumed) end of file", sieve_lexer_token_string(parser->lexer)); @@ -368,15 +368,15 @@ bool sieve_parser_run(struct sieve_parser *parser) /* Assign useful names to priorities for readability */ enum sieve_grammatical_prio { - SGP_BLOCK = 3, - SGP_COMMAND = 2, - SGP_TEST_LIST = 1, - SGP_STRING_LIST = 0, + SGP_BLOCK = 3, + SGP_COMMAND = 2, + SGP_TEST_LIST = 1, + SGP_STRING_LIST = 0, - SGP_OTHER = -1 + SGP_OTHER = -1 }; -static __inline__ enum sieve_grammatical_prio __get_token_priority(enum sieve_token_type token) { +static inline enum sieve_grammatical_prio __get_token_priority(enum sieve_token_type token) { switch ( token ) { case STT_LCURLY: case STT_RCURLY: diff --git a/src/lib-sieve/sieve-parser.h b/src/lib-sieve/sieve-parser.h index 3d94f9564efb4ad60de3b2122f37617004d2638c..ff6901288eb478b2bfd92540c57870f1394241f0 100644 --- a/src/lib-sieve/sieve-parser.h +++ b/src/lib-sieve/sieve-parser.h @@ -1,5 +1,5 @@ -#ifndef __SIEVE_PARSER_H__ -#define __SIEVE_PARSER_H__ +#ifndef __SIEVE_PARSER_H +#define __SIEVE_PARSER_H #include "lib.h" #include "sieve-lexer.h" @@ -11,4 +11,4 @@ struct sieve_parser *sieve_parser_create(int fd, struct sieve_ast *ast, struct s void sieve_parser_free(struct sieve_parser *parser); bool sieve_parser_run(struct sieve_parser *parser); -#endif /* __SIEVE_PARSER_H__ */ +#endif /* __SIEVE_PARSER_H */ diff --git a/src/lib-sieve/sieve-validator.h b/src/lib-sieve/sieve-validator.h index dab6892d53cea5ff865a71fc3c77618f4d11772f..f980b6dea249a93c85241964c49ae5280fec55b6 100644 --- a/src/lib-sieve/sieve-validator.h +++ b/src/lib-sieve/sieve-validator.h @@ -1,5 +1,5 @@ -#ifndef __SIEVE_VALIDATOR_H__ -#define __SIEVE_VALIDATOR_H__ +#ifndef __SIEVE_VALIDATOR_H +#define __SIEVE_VALIDATOR_H #include "lib.h" @@ -56,4 +56,4 @@ int sieve_validator_extension_load inline void sieve_validator_extension_set_context(struct sieve_validator *validator, int ext_id, void *context); inline const void *sieve_validator_extension_get_context(struct sieve_validator *validator, int ext_id); -#endif /* __SIEVE_VALIDATOR_H__ */ +#endif /* __SIEVE_VALIDATOR_H */