diff --git a/Makefile.am b/Makefile.am index b20be0ecfd967d0bacc7923b4bbee6c76f3b7691..43a7b56dc87cc9e699adc94329cbbacfe49adda4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -43,6 +43,7 @@ test_cases = \ tests/control-structures.svtest \ tests/compile/compile.svtest \ tests/compile/errors.svtest \ + tests/compile/warnings.svtest \ tests/execute/errors.svtest \ tests/execute/actions.svtest \ tests/execute/smtp.svtest \ diff --git a/src/lib-sieve/sieve-lexer.c b/src/lib-sieve/sieve-lexer.c index 1c51cba811769176fce27e0d43ae804fa64007ef..260ec9f0807614ed11c3f40265e9f6f8e7e5681e 100644 --- a/src/lib-sieve/sieve-lexer.c +++ b/src/lib-sieve/sieve-lexer.c @@ -318,9 +318,9 @@ static bool sieve_lexer_scan_raw_token(struct sieve_lexer *lexer) while ( sieve_lexer_curchar(lexer) != '\n' ) { switch( sieve_lexer_curchar(lexer) ) { case -1: - sieve_lexer_error(lexer, "end of file before end of hash comment"); - lexer->token_type = STT_ERROR; - return FALSE; + sieve_lexer_warning(lexer, "no newline (CRLF) at end of hash comment at end of file"); + lexer->token_type = STT_WHITESPACE; + return TRUE; case '\0': sieve_lexer_error(lexer, "encountered NUL character in hash comment"); lexer->token_type = STT_ERROR; diff --git a/tests/compile/warnings.svtest b/tests/compile/warnings.svtest new file mode 100644 index 0000000000000000000000000000000000000000..66f26f686e5683665ab517477d404a110f79b868 --- /dev/null +++ b/tests/compile/warnings.svtest @@ -0,0 +1,8 @@ +require "vnd.dovecot.testsuite"; + +test "EOF Warnings" { + if not test_script_compile "warnings/eof.sieve" { + test_fail "compile should have succeeded."; + } +} + diff --git a/tests/compile/warnings/eof.sieve b/tests/compile/warnings/eof.sieve new file mode 100644 index 0000000000000000000000000000000000000000..e7121495d7de8a2100fa02b71b5ea1fc925ee02b --- /dev/null +++ b/tests/compile/warnings/eof.sieve @@ -0,0 +1,2 @@ +keep; +# Kept \ No newline at end of file