Jan Breuer
2018-09-05 2e78fdc66afab833fdbba16dd12f0e69df54700c
Fix #103 semicolon with empty command causes problems
2个文件已修改
11 ■■■■■ 已修改文件
libscpi/src/parser.c 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
libscpi/test/test_parser.c 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
libscpi/src/parser.c
@@ -340,7 +340,8 @@
                context->buffer.position -= totcmdlen;
                totcmdlen = 0;
            } else {
                if (context->parser_state.programHeader.type == SCPI_TOKEN_UNKNOWN) break;
                if (context->parser_state.programHeader.type == SCPI_TOKEN_UNKNOWN
                        && context->parser_state.termination == SCPI_MESSAGE_TERMINATION_NONE) break;
                if (totcmdlen >= context->buffer.position) break;
            }
        }
libscpi/test/test_parser.c
@@ -265,6 +265,14 @@
    TEST_INPUT("\r\n", "MA,IN,0,VER\r\n");
    output_buffer_clear();
    /* Test empty command at the beggining */
    TEST_INPUT(";*IDN?\r\n", "MA,IN,0,VER\r\n");
    output_buffer_clear();
    TEST_INPUT(";", "");
    TEST_INPUT("*IDN?\r\n", "MA,IN,0,VER\r\n");
    output_buffer_clear();
    /* Test input "timeout" - input with length == 0 */
    TEST_INPUT("*IDN?", "");
    TEST_INPUT("", "MA,IN,0,VER\r\n");