diff --git a/src/lib-sieve/sieve-lexer.c b/src/lib-sieve/sieve-lexer.c index dbc7d9e915c4d137c8d1da353b1fe9779baabd69..1c51cba811769176fce27e0d43ae804fa64007ef 100644 --- a/src/lib-sieve/sieve-lexer.c +++ b/src/lib-sieve/sieve-lexer.c @@ -795,13 +795,10 @@ static bool sieve_lexer_scan_raw_token(struct sieve_lexer *lexer) bool sieve_lexer_skip_token(struct sieve_lexer *lexer) { - /* Scan token */ - if ( !sieve_lexer_scan_raw_token(lexer) ) return FALSE; - - /* Skip any whitespace */ - while ( lexer->token_type == STT_WHITESPACE ) { + /* Scan token while skipping whitespace */ + do { if ( !sieve_lexer_scan_raw_token(lexer) ) return FALSE; - } + } while ( lexer->token_type == STT_WHITESPACE ); return TRUE; }