--- gatchat/gatsyntax.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/gatchat/gatsyntax.c b/gatchat/gatsyntax.c index 2fc70b8..f1d896b 100644 --- a/gatchat/gatsyntax.c +++ b/gatchat/gatsyntax.c @@ -64,6 +64,9 @@ static void gsmv1_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint) case G_AT_SYNTAX_EXPECT_MULTILINE: syntax->state = GSMV1_STATE_GUESS_MULTILINE_RESPONSE; break; + case G_AT_SYNTAX_EXPECT_SHORT_PROMPT: + syntax->state = GSMV1_STATE_PROMPT; + break; default: break; }; @@ -195,6 +198,13 @@ static GAtSyntaxResult gsmv1_feed(GAtSyntax *syntax, i += 1; res = G_AT_SYNTAX_RESULT_PROMPT; goto out; + } else if (byte == '\r') + break; + else if (byte == '\n') { + syntax->state = GSMV1_STATE_IDLE; + i += 1; + res = G_AT_SYNTAX_RESULT_PROMPT; + goto out; } syntax->state = GSMV1_STATE_RESPONSE; @@ -239,6 +249,8 @@ static void gsm_permissive_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint) { if (hint == G_AT_SYNTAX_EXPECT_PDU) syntax->state = GSM_PERMISSIVE_STATE_GUESS_PDU; + else if (hint == G_AT_SYNTAX_EXPECT_SHORT_PROMPT) + syntax->state = GSM_PERMISSIVE_STATE_PROMPT; } static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax, @@ -298,6 +310,13 @@ static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax, i += 1; res = G_AT_SYNTAX_RESULT_PROMPT; goto out; + } else if (byte == '\r') + break; + else if (byte == '\n') { + syntax->state = GSM_PERMISSIVE_STATE_IDLE; + i += 1; + res = G_AT_SYNTAX_RESULT_PROMPT; + goto out; } syntax->state = GSM_PERMISSIVE_STATE_RESPONSE; -- 1.7.0.4 _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono