From 02c004a7747e7f7f4c135c370dd82bf383750450 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周一, 07 8月 2017 03:01:58 +0800
Subject: [PATCH] Merge pull request #89 from j123b567/feature/expose-on-off

---
 libscpi/src/parser.c      |   17 ++++++++++-------
 libscpi/inc/scpi/parser.h |    1 +
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/libscpi/inc/scpi/parser.h b/libscpi/inc/scpi/parser.h
index f1d9e2a..fc75a4c 100644
--- a/libscpi/inc/scpi/parser.h
+++ b/libscpi/inc/scpi/parser.h
@@ -114,6 +114,7 @@
     scpi_bool_t SCPI_ParamArbitraryBlock(scpi_t * context, const char ** value, size_t * len, scpi_bool_t mandatory);
     scpi_bool_t SCPI_ParamCopyText(scpi_t * context, char * buffer, size_t buffer_len, size_t * copy_len, scpi_bool_t mandatory);
 
+    extern const scpi_choice_def_t scpi_bool_def[];
     scpi_bool_t SCPI_ParamBool(scpi_t * context, scpi_bool_t * value, scpi_bool_t mandatory);
     scpi_bool_t SCPI_ParamChoice(scpi_t * context, const scpi_choice_def_t * options, int32_t * value, scpi_bool_t mandatory);
 
diff --git a/libscpi/src/parser.c b/libscpi/src/parser.c
index 1f16ecf..e2f0c2f 100644
--- a/libscpi/src/parser.c
+++ b/libscpi/src/parser.c
@@ -1270,6 +1270,15 @@
     return FALSE;
 }
 
+/*
+ * Definition of BOOL choice list
+ */
+const scpi_choice_def_t scpi_bool_def[] = {
+    {"OFF", 0},
+    {"ON", 1},
+    SCPI_CHOICE_LIST_END /* termination of option list */
+};
+
 /**
  * Read BOOL parameter (0,1,ON,OFF)
  * @param context
@@ -1281,12 +1290,6 @@
     scpi_bool_t result;
     scpi_parameter_t param;
     int32_t intval;
-
-    scpi_choice_def_t bool_options[] = {
-        {"OFF", 0},
-        {"ON", 1},
-        SCPI_CHOICE_LIST_END /* termination of option list */
-    };
 
     if (!value) {
         SCPI_ErrorPush(context, SCPI_ERROR_SYSTEM_ERROR);
@@ -1300,7 +1303,7 @@
             SCPI_ParamToInt32(context, &param, &intval);
             *value = intval ? TRUE : FALSE;
         } else {
-            result = SCPI_ParamToChoice(context, &param, bool_options, &intval);
+            result = SCPI_ParamToChoice(context, &param, scpi_bool_def, &intval);
             if (result) {
                 *value = intval ? TRUE : FALSE;
             }

--
Gitblit v1.9.1