From bf8143c649292042de87c0cef63e6cb3c523388f Mon Sep 17 00:00:00 2001
From: nancy.liao <huihui.liao@greentest.com.cn>
Date: 周四, 08 5月 2025 16:40:10 +0800
Subject: [PATCH] 修改了一些警告信息

---
 libscpi/src/utils.c |  123 ++++------------------------------------
 1 files changed, 13 insertions(+), 110 deletions(-)

diff --git a/libscpi/src/utils.c b/libscpi/src/utils.c
index 8758917..9358b51 100644
--- a/libscpi/src/utils.c
+++ b/libscpi/src/utils.c
@@ -319,7 +319,7 @@
  */
 size_t strToFloat(const char * str, float * val) {
     char * endptr;
-    *val = SCPIDEFINE_strtof(str, &endptr);
+    *val = (float)SCPIDEFINE_strtof(str, &endptr);
     return endptr - str;
 }
 
@@ -480,13 +480,13 @@
     if ((pattern_len > 0) && pattern[pattern_len - 1] == '#') {
         size_t new_pattern_len = pattern_len - 1;
 
-        pattern_sep_pos_short = patternSeparatorShortPos(pattern, new_pattern_len);
+        pattern_sep_pos_short = (int)patternSeparatorShortPos(pattern, new_pattern_len);
 
         return compareStrAndNum(pattern, new_pattern_len, str, str_len, num) ||
                compareStrAndNum(pattern, pattern_sep_pos_short, str, str_len, num);
     } else {
 
-        pattern_sep_pos_short = patternSeparatorShortPos(pattern, pattern_len);
+        pattern_sep_pos_short = (int)patternSeparatorShortPos(pattern, pattern_len);
 
         return compareStr(pattern, pattern_len, str, str_len) ||
                compareStr(pattern, pattern_sep_pos_short, str, str_len);
@@ -512,7 +512,7 @@
     int32_t *number_ptr = NULL;
 
     const char * pattern_ptr = pattern;
-    int pattern_len = strlen(pattern);
+    int pattern_len = (int)strlen(pattern);
 
     const char * cmd_ptr = cmd;
     size_t cmd_len = SCPIDEFINE_strnlen(cmd, len);
@@ -548,9 +548,9 @@
     }
 
     while (1) {
-        int pattern_sep_pos = patternSeparatorPos(pattern_ptr, pattern_len);
+        int pattern_sep_pos = (int)patternSeparatorPos(pattern_ptr, pattern_len);
 
-        cmd_sep_pos = cmdSeparatorPos(cmd_ptr, cmd_len);
+        cmd_sep_pos = (int)cmdSeparatorPos(cmd_ptr, cmd_len);
 
         if ((pattern_sep_pos > 0) && pattern_ptr[pattern_sep_pos - 1] == '#') {
             if (numbers && (numbers_idx < numbers_len)) {
@@ -584,7 +584,7 @@
             if (cmd_len == 0) {
                 /* verify all subsequent pattern parts are also optional */
                 while (pattern_len) {
-                    pattern_sep_pos = patternSeparatorPos(pattern_ptr, pattern_len);
+                    pattern_sep_pos = (int)patternSeparatorPos(pattern_ptr, pattern_len);
                     switch (pattern_ptr[pattern_sep_pos]) {
                     case '[':
                         brackets++;
@@ -677,7 +677,7 @@
 
 //缁勫悎澶嶅悎SCPI鍛戒护
 scpi_bool_t composeCompoundCommand(const scpi_token_t * prev, scpi_token_t * current) {
-    size_t i;
+    int i;
 
     /* Invalid input */
     if (current == NULL || current->ptr == NULL || current->len == 0)
@@ -741,8 +741,8 @@
     unsigned char c1, c2;
 
     for (; n != 0; n--) {
-        c1 = tolower((unsigned char) *s1++);
-        c2 = tolower((unsigned char) *s2++);
+        c1 = (unsigned char)tolower((unsigned char) *s1++);
+        c2 = (unsigned char)tolower((unsigned char) *s2++);
         if (c1 != c2) {
             return c1 - c2;
         }
@@ -958,7 +958,7 @@
 
     if (fi != 0) {
         r1 = r1 * 308 / 1024 - ndigits;
-        w2 = bufsize;
+        w2 = (int)bufsize;
         while (r1 > 0) {
             fj = modf(fi / 10, &fi);
             r2++;
@@ -966,7 +966,7 @@
         }
         while (fi != 0) {
             fj = modf(fi / 10, &fi);
-            buf[--w2] = (int) ((fj + .03) * 10) + '0';
+            buf[--w2] = (char) ((fj + .03) * 10) + '0';
             r2++;
         }
         while (w2 < (int) bufsize) buf[w1++] = buf[w2++];
@@ -985,7 +985,7 @@
     while (w1 <= w2 && w1 < (int) bufsize) {
         arg *= 10;
         arg = modf(arg, &fj);
-        buf[w1++] = (int) fj + '0';
+        buf[w1++] = (char) fj + '0';
     }
     if (w2 >= (int) bufsize) {
         buf[bufsize - 1] = '\0';
@@ -1143,101 +1143,4 @@
            ((val & 0x0000FF0000000000ull) >> 24) |
            ((val & 0x00FF000000000000ull) >> 40) |
            ((val & 0xFF00000000000000ull) >> 56);
-}
-
-
-// 鐢ㄤ簬鎻愬彇骞跺鐞嗛�夐」鐨勫嚱鏁�
-int extract_required_options(const char* pattern, char options[MAX_TAGS][MAX_OPTION_LEN][MAX_OPTION_LEN], int max_tags) {
-    const char* start = strchr(pattern, '<');  // 鏌ユ壘绗竴涓� '<'
-    const char* end = NULL;
-    int tag_count = 0;
-
-    // 澶勭悊 <...> 鍐呯殑閫夐」
-    while (start != NULL && tag_count < max_tags)
-    {
-        end = strchr(start, '>');  // 鏌ユ壘瀵瑰簲鐨� '>'
-
-        if (end == NULL) {
-            break;  // 濡傛灉娌℃湁鎵惧埌 '>'锛屽垯閫�鍑�
-        }
-
-        // 鎻愬彇 <...> 涓殑鍐呭
-        int len = end - start - 1;
-        if (len > 0 && len < MAX_OPTION_LEN) {
-            char buffer[MAX_OPTION_LEN];
-            strncpy(buffer, start + 1, len);  // 澶嶅埗 '<' 鍜� '>' 涔嬮棿鐨勫唴瀹�
-            buffer[len] = '\0';  // 缁撴潫绗�
-
-            // 澶勭悊 | 鍒嗛殧绗︼紝鎻愬彇澶氫釜閫夐」
-            char* token = strtok(buffer, "|");
-            int option_count = 0;
-            while (token && option_count < MAX_OPTION_LEN) {
-                // 鍘婚櫎 token 涓殑 "[:", "]" 鍜岀┖鏍�
-                char* p = token;
-                while (*p == ' ' || *p == '[' || *p == ':') p++;  // 鍘婚櫎鍓嶅绌烘牸鍜� [:
-                char* q = p + strlen(p) - 1;
-                while (q > p && (*q == ' ' || *q == ']')) q--;  // 鍘婚櫎灏鹃殢绌烘牸鍜� ]
-                *(q + 1) = '\0';  // 纭繚缁撳熬鏄�'\0'
-
-                // 鎷疯礉閫夐」鍒� options 鏁扮粍
-                if (option_count < MAX_OPTION_LEN) {  // 纭繚涓嶄細瓒婄晫
-                    strncpy(options[tag_count][option_count], p, MAX_OPTION_LEN - 1);
-                    options[tag_count][option_count][MAX_OPTION_LEN - 1] = '\0';  // 纭繚缁撴潫绗�
-                    option_count++;
-                }
-                token = strtok(NULL, "|");
-            }
-        }
-
-        // 绉诲姩鍒颁笅涓�涓� '<' 浣嶇疆锛岀户缁煡鎵�
-        start = strchr(end + 1, '<');
-        tag_count++;
-    }
-
-    return tag_count;
-}
-
-// 鐢ㄤ簬妫�鏌ヨ緭鍏ユ槸鍚﹁兘鍖归厤姣忎竴缁勯�夐」
-int match_input_to_options(const char* input, char options[MAX_TAGS][MAX_OPTION_LEN][MAX_OPTION_LEN], int num_tags) {
-    char input_copy[MAX_INPUT_LEN];
-    strncpy(input_copy, input, MAX_INPUT_LEN - 1);
-    input_copy[MAX_INPUT_LEN - 1] = '\0';  // 纭繚缁撳熬鏄�'\0'
-
-    // 鎷嗗垎杈撳叆瀛楃涓诧紝鎸� ":" 鍒嗗壊
-    char* token = strtok(input_copy, ":");
-    int group_idx = 0;
-
-    // 瀵规瘡涓�缁勮繘琛屽尮閰�
-    while (token != NULL && group_idx < num_tags) {
-        int match_found = 0;
-        // 妫�鏌ュ綋鍓嶇粍鐨勬瘡涓�夐」鏄惁涓庤緭鍏ョ殑 token 鍖归厤
-        printf("Checking input token: '%s' against group %d options\n", token, group_idx + 1); // Debug info
-        for (int i = 0; i < MAX_OPTION_LEN && options[group_idx][i][0] != '\0'; i++) {
-            printf("  Comparing with option: '%s'\n", options[group_idx][i]); // Debug info
-            if (strcmp(options[group_idx][i], token) == 0) {
-                match_found = 1;
-                break;
-            }
-        }
-
-        // 濡傛灉褰撳墠缁勭殑鏌愪釜閫夐」娌℃湁鍖归厤涓婏紝杩斿洖 false
-        if (!match_found) {
-            return 0;  // 涓嶅尮閰�
-        }
-
-        // 澶勭悊涓嬩竴涓緭鍏ラ儴鍒�
-        token = strtok(NULL, ":");
-        group_idx++;
-    }
-
-    return (group_idx == num_tags);
-}
-
-
-// 娴嬭瘯鍖归厤鍑芥暟
-bool test_match(const char* pattern, const char* command)
-{
-    char options[MAX_TAGS][MAX_OPTION_LEN][MAX_OPTION_LEN] = { {{0}} };
-    int num_tags = extract_required_options(pattern, options, MAX_TAGS);
-    return match_input_to_options(command, options, num_tags);
 }

--
Gitblit v1.9.1