{
parser->flags = flags;
- while (count == 0 || parser->root_list->size < count ||
- IS_UNFINISHED(parser)) {
+ while (!parser->eol && (count == 0 || parser->root_list->size < count ||
+ IS_UNFINISHED(parser))) {
if (!imap_parser_read_arg(parser))
break;
} else if ((!IS_UNFINISHED(parser) && count > 0 &&
parser->root_list->size >= count) || parser->eol) {
/* all arguments read / end of line. */
- i_stream_skip(parser->input, parser->cur_pos);
+ i_stream_skip(parser->input, parser->cur_pos);
parser->cur_pos = 0;
if (parser->list_arg != NULL) {