From 4e879901b51cbb43dab36dd83f95a23f1dbaa4c0 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周三, 01 2月 2023 18:27:00 +0800
Subject: [PATCH] Merge pull request #145 from j123b567/issue/117-allow-compilation-by-cxx

---
 libscpi/src/ieee488.c          |    8 ++++++--
 libscpi/test/test_scpi_utils.c |   14 +++++++-------
 libscpi/src/error.c            |    5 ++++-
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/libscpi/src/error.c b/libscpi/src/error.c
index 858ebfb..8807140 100644
--- a/libscpi/src/error.c
+++ b/libscpi/src/error.c
@@ -133,7 +133,10 @@
     /* SCPIDEFINE_strndup is sometimes a dumy that does not reference it's arguments. 
        Since info_len is not referenced elsewhere caoing to void prevents unusd argument warnings */
     (void) info_len;
-    char * info_ptr = info ? SCPIDEFINE_strndup(&context->error_info_heap, info, info_len) : NULL;
+    char * info_ptr = NULL;
+    if (info) {
+        info_ptr = SCPIDEFINE_strndup(&context->error_info_heap, info, info_len);
+    }
     SCPI_ERROR_SETVAL(&error_value, err, info_ptr);
     if (!fifo_add(&context->error_queue, &error_value)) {
         SCPIDEFINE_free(&context->error_info_heap, error_value.device_dependent_info, true);
diff --git a/libscpi/src/ieee488.c b/libscpi/src/ieee488.c
index f95b45e..c5f2665 100644
--- a/libscpi/src/ieee488.c
+++ b/libscpi/src/ieee488.c
@@ -169,7 +169,7 @@
         switch (register_type) {
             case SCPI_REG_CLASS_STB:
             case SCPI_REG_CLASS_SRE:
-                ;
+            {
                 scpi_reg_val_t stb = context->registers[SCPI_REG_STB] & ~STB_SRQ;
                 scpi_reg_val_t sre = context->registers[SCPI_REG_SRE] & ~STB_SRQ;
 
@@ -183,8 +183,9 @@
                     context->registers[SCPI_REG_STB] &= ~STB_SRQ;
                 }
                 break;
+            }
             case SCPI_REG_CLASS_EVEN:
-                ;
+            {
                 scpi_reg_val_t enable;
                 if(register_group.enable != SCPI_REG_NONE) {
                     enable = SCPI_RegGet(context, register_group.enable);
@@ -202,7 +203,9 @@
                     val &= ~(register_group.parent_bit);
                 }
                 break;
+            }
             case SCPI_REG_CLASS_COND:
+            {
                 name = register_group.event;
 
                 if(register_group.ptfilt == SCPI_REG_NONE && register_group.ntfilt == SCPI_REG_NONE) {
@@ -227,6 +230,7 @@
                     val = ((ptrans & ptfilt) | (ntrans & ntfilt)) | SCPI_RegGet(context, register_group.event);
                 }
                 break;
+            }
             case SCPI_REG_CLASS_ENAB:
             case SCPI_REG_CLASS_NTR:
             case SCPI_REG_CLASS_PTR:
diff --git a/libscpi/test/test_scpi_utils.c b/libscpi/test/test_scpi_utils.c
index 1f39b73..6b8e40f 100644
--- a/libscpi/test/test_scpi_utils.c
+++ b/libscpi/test/test_scpi_utils.c
@@ -64,7 +64,7 @@
 
 static void test_Int32ToStr() {
     const size_t max = 32 + 1;
-    int32_t val[] = {0, 1, -1, INT32_MIN, INT32_MAX, 0x01234567, 0x89abcdef};
+    int32_t val[] = {0, 1, -1, INT32_MIN, INT32_MAX, 0x01234567, (int32_t)0x89abcdef};
     int N = sizeof (val) / sizeof (int32_t);
     int i;
     char str[max];
@@ -79,7 +79,7 @@
         CU_ASSERT_STRING_EQUAL(str, ref);
     }
 
-    int16_t val16[] = {0, 1, -1, INT16_MIN, INT16_MAX, 0x0123, 0x4567, 0x89ab, 0xcdef};
+    int16_t val16[] = {0, 1, -1, INT16_MIN, INT16_MAX, 0x0123, 0x4567, (int16_t)0x89ab, (int16_t)0xcdef};
     int N16 = sizeof (val16) / sizeof (int16_t);
     /* test signed conversion to decimal numbers */
     for (i = 0; i < N16; i++) {
@@ -92,7 +92,7 @@
 
 static void test_UInt32ToStrBase() {
     const size_t max = 32 + 1;
-    uint32_t val[] = {0, 1, -1, INT32_MIN, INT32_MAX, 0x01234567, 0x89abcdef};
+    uint32_t val[] = {0, 1, (uint32_t)-1, (uint32_t)INT32_MIN, INT32_MAX, 0x01234567, 0x89abcdef};
     int N = sizeof (val) / sizeof (uint32_t);
     int i;
     char str[max];
@@ -147,7 +147,7 @@
 
 static void test_Int64ToStr() {
     const size_t max = 64 + 1;
-    int64_t val[] = {0, 1, -1, INT64_MIN, INT64_MAX, 0x0123456789abcdef, 0xfedcba9876543210};
+    int64_t val[] = {0, 1, -1, INT64_MIN, INT64_MAX, 0x0123456789abcdef, (int64_t)0xfedcba9876543210};
     int N = sizeof (val) / sizeof (int64_t);
     int i;
     char str[max];
@@ -165,7 +165,7 @@
 
 static void test_UInt64ToStrBase() {
     const size_t max = 64 + 1;
-    uint64_t val[] = {0, 1, -1, INT64_MIN, INT64_MAX, 0x0123456789abcdef, 0xfedcba9876543210};
+    uint64_t val[] = {0, 1, (uint64_t)-1, (uint64_t)INT64_MIN, INT64_MAX, 0x0123456789abcdef, 0xfedcba9876543210};
     int N = sizeof (val) / sizeof (uint64_t);
     int i;
     char str[max];
@@ -232,8 +232,8 @@
         1.0000000001e-5, 1.00000000001e-5, 1.000000000001e-5,
         1.0000000000001e-5, 1, 12, 123, 1234, 12345, 123456, 1234567, 12345678,
         123456789, 1234567890, 12345678901, 123456789012, 1234567890123,
-        12345678901234, 123456789012345, 1234567890123456, 12345678901234567,
-        123456789012345678, 1234567890123456789, 1234567890123456789e1, 1.1,
+        12345678901234, 123456789012345, 1234567890123456, (double)12345678901234567,
+        (double)123456789012345678, (double)1234567890123456789, (double)1234567890123456789e1, 1.1,
         10.1, 100.1, 1000.1, 10000.1, 100000.1, 1000000.1, 10000000.1,
         100000000.1, 1000000000.1, 0.1234567890123456789,
         0.01234567890123456789, 0.001234567890123456789,

--
Gitblit v1.9.1