From 83847012f9b0a0d479725d4741c551c88d7035c2 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周六, 25 4月 2015 22:54:36 +0800
Subject: [PATCH] Solve #16 Multiple Identical Capabilities

---
 libscpi/src/parser.c |   16 +++++++---------
 1 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/libscpi/src/parser.c b/libscpi/src/parser.c
index 4b73e3c..375f4ac 100644
--- a/libscpi/src/parser.c
+++ b/libscpi/src/parser.c
@@ -151,7 +151,7 @@
 
     for (i = 0; context->cmdlist[i].pattern != NULL; i++) {
         cmd = &context->cmdlist[i];
-        if (matchCommand(cmd->pattern, header, len)) {
+        if (matchCommand(cmd->pattern, header, len, NULL, 0)) {
             context->param_list.cmd = cmd;
             return TRUE;
         }
@@ -761,7 +761,7 @@
 
     if (parameter->type == SCPI_TOKEN_PROGRAM_MNEMONIC) {
         for (res = 0; options[res].name; ++res) {
-            if (matchPattern(options[res].name, strlen(options[res].name), parameter->ptr, parameter->len)) {
+            if (matchPattern(options[res].name, strlen(options[res].name), parameter->ptr, parameter->len, NULL)) {
                 *value = options[res].tag;
                 result = TRUE;
                 break;
@@ -1017,7 +1017,7 @@
     }
 
     const char * pattern = context->param_list.cmd->pattern;
-    return matchCommand(pattern, cmd, strlen(cmd));
+    return matchCommand (pattern, cmd, strlen (cmd), NULL, 0);
 }
 
 /**
@@ -1034,11 +1034,9 @@
 }
 
 scpi_bool_t SCPI_Match(const char * pattern, const char * value, size_t len) {
-    return matchCommand (pattern, value, len);
+    return matchCommand (pattern, value, len, NULL, 0);
 }
 
-
-
-
-
-
+scpi_bool_t SCPI_CommandNumbers(scpi_t * context, int32_t * numbers, size_t len) {
+    return matchCommand (context->param_list.cmd->pattern,  context->param_list.cmd_raw.data, context->param_list.cmd_raw.length, numbers, len);
+}

--
Gitblit v1.9.1