From 19bdb567480606f55babaebdf7ca29161040ed8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Sat, 5 Dec 2015 23:13:51 +0100 Subject: [PATCH] Fixed bug in error handling causing good commands to be discarded after an error --- scpi.pro | 2 ++ scpi.pro.user | 2 +- source/scpi_parser.c | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scpi.pro b/scpi.pro index 8a4c31d..f111fa0 100644 --- a/scpi.pro +++ b/scpi.pro @@ -3,6 +3,8 @@ CONFIG += console CONFIG -= app_bundle CONFIG -= qt +INCLUDEPATH += source/ + SOURCES += \ main.c \ source/scpi_parser.c \ diff --git a/scpi.pro.user b/scpi.pro.user index bf950fc..aa4a872 100644 --- a/scpi.pro.user +++ b/scpi.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/source/scpi_parser.c b/source/scpi_parser.c index f27af77..8bb1758 100644 --- a/source/scpi_parser.c +++ b/source/scpi_parser.c @@ -73,7 +73,7 @@ static struct { SCPI_argval_t args[SCPI_MAX_PARAM_COUNT]; uint8_t arg_i; // next free argument slot index -} pst = {0}; // initialized by all zeros +} pst = {/*EMPTY*/}; // initialized by all zeros // buffer for error messages @@ -220,6 +220,7 @@ void scpi_handle_byte(const uint8_t b) if (c == '\r' || c == '\n') { pars_reset_cmd(); } + break; case PARS_TRAILING_WHITE: @@ -510,7 +511,7 @@ static void pars_cmd_newline(void) } else { err_no_such_command(); - pst.state = PARS_DISCARD_LINE; + pars_reset_cmd(); } }