From 77a92c3204b95eaf2870605718b9099ab6ece56a Mon Sep 17 00:00:00 2001
From: nancy.liao <huihui.liao@greentest.com.cn>
Date: 周一, 26 5月 2025 08:41:11 +0800
Subject: [PATCH] 匹配时添加了一个当前索引项

---
 libscpi/src/parser.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/libscpi/src/parser.c b/libscpi/src/parser.c
index 8530871..5e34d1c 100644
--- a/libscpi/src/parser.c
+++ b/libscpi/src/parser.c
@@ -57,7 +57,7 @@
 static size_t writeData(scpi_t * context, const char * data, size_t len) {
     if ((len > 0) && (data != NULL)) {
         return 0;
-       // return context->interface->write(context, data, len);
+        return context->interface->write(context, data, len);
     } else {
         return 0;
     }
@@ -180,7 +180,7 @@
  * @param context
  * @result TRUE if context->paramlist is filled with correct values
  */
-scpi_bool_t findCommandHeader(scpi_t * context, const char * header,int len)
+scpi_bool_t findCommandHeader(scpi_t * context, const char * header)
 {
     //鍙傛暟宸茬粡鍦ㄥ墠闈㈤儴鍒嗚В鏋愬畬鎴�,鍖归厤鍛戒护鏃跺氨涓嶅啀闇�瑕佸弬鏁伴儴鍒� 灏嗗懡浠ゆ媶闄ゅ嵆鍙�
     char *header_copy = strdup(header);
@@ -190,12 +190,13 @@
     {
         if( match_segments_global(first_part,i) )
         {
+            setCurrentIndex(i);
             context->param_list.cmd = &context->cmdlist[i];
             free(header_copy);
             return TRUE;
         }
     }
-    context->SCPIerror = RETURN_NotFind;
+     context->SCPIerror = RETURN_NotFind;
     return FALSE;
 }
 
@@ -245,7 +246,7 @@
             //鍛戒护鏈夋晥寮�濮嬪鐞�
             composeCompoundCommand(&cmd_prev, &state->programHeader);
             //鏌ユ壘鍛戒护鍚庡苟涓旇缃В鏋愮姸鎬佸苟涓旀墽琛屽懡浠�
-            if (findCommandHeader(context, state->programHeader.ptr, state->programHeader.len)) {
+            if (findCommandHeader(context, state->programHeader.ptr)) {
 
                 context->param_list.lex_state.buffer = state->programData.ptr;
                 context->param_list.lex_state.pos = context->param_list.lex_state.buffer;
@@ -361,6 +362,7 @@
  */
 scpi_bool_t SCPI_Input(scpi_t * context, const char * data, int len)
 {
+    clearCurrentGroup();
     scpi_bool_t result = FALSE;
     size_t totcmdlen = 0;
     int cmdlen = 0;

--
Gitblit v1.9.1