[PATCH] Fix change state immediately when meet the slash
Zhenhua Zhang
zhenhua.zhang at intel.com
Tue Feb 2 05:23:22 PST 2010
According to V.250 spec section 5.2.4 Repeating a command line, if
the prefix "A/" or "a/" is received, we should execute the last
command immediately. No need to meet \r.
---
gatchat/gatserver.c | 20 +++++---------------
1 files changed, 5 insertions(+), 15 deletions(-)
diff --git a/gatchat/gatserver.c b/gatchat/gatserver.c
index fe5c3a8..eb33605 100644
--- a/gatchat/gatserver.c
+++ b/gatchat/gatserver.c
@@ -35,7 +35,6 @@
enum ParserState {
PARSER_STATE_IDLE,
PARSER_STATE_A,
- PARSER_STATE_SLASH,
PARSER_STATE_COMMAND,
PARSER_STATE_GARBAGE,
};
@@ -214,22 +213,14 @@ static enum ParserResult server_feed(GAtServer *server,
i += 1;
res = PARSER_RESULT_GARBAGE;
goto out;
- } else if (byte == '/')
- server->parser_state = PARSER_STATE_SLASH;
- else if (byte == 'T' || byte == 't')
+ } else if (byte == '/') {
server->parser_state = PARSER_STATE_COMMAND;
- else
- server->parser_state = PARSER_STATE_GARBAGE;
-
- break;
-
- case PARSER_STATE_SLASH:
- if (byte == s3) {
- server->parser_state = PARSER_STATE_IDLE;
- i+= 1;
+ i += 1;
res = PARSER_RESULT_REPEAT_LAST;
goto out;
- } else if (byte != ' ' && byte != '\t')
+ } else if (byte == 'T' || byte == 't')
+ server->parser_state = PARSER_STATE_COMMAND;
+ else
server->parser_state = PARSER_STATE_GARBAGE;
break;
@@ -246,7 +237,6 @@ static enum ParserResult server_feed(GAtServer *server,
case PARSER_STATE_GARBAGE:
if (byte == s3) {
server->parser_state = PARSER_STATE_IDLE;
-
i += 1;
res = PARSER_RESULT_GARBAGE;
goto out;
--
1.6.6.1
More information about the ofono
mailing list