From 59d4618036c85dafc9026d0f84ab00fcb900acc9 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周三, 23 10月 2013 21:46:41 +0800
Subject: [PATCH] merge functionality from 'master' branch

---
 libscpi/src/units.c |   29 +++++++++++++----------------
 1 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/libscpi/src/units.c b/libscpi/src/units.c
index 3583ef5..351d735 100644
--- a/libscpi/src/units.c
+++ b/libscpi/src/units.c
@@ -257,25 +257,22 @@
     state.pos = state.buffer;
     state.len = parameter->data.len;
 
-    if (parameter->type == TokDecimalNumericProgramDataWithSuffix) {
-        SCPI_LexDecimalNumericProgramData(&state, &token);
-        SCPI_LexWhiteSpace(&state, &token);
-        SCPI_LexSuffixProgramData(&state, &token);
+    switch(parameter->type) {
+        case TokDecimalNumericProgramDataWithSuffix:
+            SCPI_LexDecimalNumericProgramData(&state, &token);
+            SCPI_LexWhiteSpace(&state, &token);
+            SCPI_LexSuffixProgramData(&state, &token);
 
-        return transformNumber(context, token.ptr, token.len, &parameter->number);
+            return transformNumber(context, token.ptr, token.len, &parameter->number);
+        case TokProgramMnemonic:
+            SCPI_LexWhiteSpace(&state, &token);
+            SCPI_LexCharacterProgramData(&state, &token);
 
-    } else if (parameter->type == TokProgramMnemonic) {
-        SCPI_LexWhiteSpace(&state, &token);
-        SCPI_LexCharacterProgramData(&state, &token);
-
-        /* convert string to special number type */
-        if (translateSpecialNumber(context->special_numbers, token.ptr, token.len, &parameter->number)) {
-            /* found special type */
-            return TRUE;
-        }
+            /* convert string to special number type */
+            return translateSpecialNumber(context->special_numbers, token.ptr, token.len, &parameter->number);
+        default:
+            return FALSE;
     }
-
-    return FALSE;
 }
 
 /**

--
Gitblit v1.9.1