PARSER_STATE_RESPONSE,
PARSER_STATE_TERMINATOR_CR,
PARSER_STATE_RESPONSE_COMPLETE,
+ PARSER_STATE_GUESS_MULTILINE_RESPONSE,
PARSER_STATE_PDU,
PARSER_STATE_PDU_CR,
PARSER_STATE_PDU_COMPLETE,
}
out:
+ if (!(p->flags & G_AT_CHAT_FLAG_NO_LEADING_CRLF))
+ p->state = PARSER_STATE_GUESS_MULTILINE_RESPONSE;
+
p->response_lines = g_slist_prepend(p->response_lines,
line);
chat->state = PARSER_STATE_IDLE;
break;
+ case PARSER_STATE_GUESS_MULTILINE_RESPONSE:
+ if (byte == '\r')
+ chat->state = PARSER_STATE_INITIAL_CR;
+ else
+ chat->state = PARSER_STATE_RESPONSE;
+ break;
+
case PARSER_STATE_PDU:
if (byte == '\r')
chat->state = PARSER_STATE_PDU_CR;