From 7cae5d8842793edae18deddc75b7515c41d065c8 Mon Sep 17 00:00:00 2001 From: Jan Breuer <jan.breuer@jaybee.cz> Date: 周五, 16 10月 2015 21:51:30 +0800 Subject: [PATCH] Add 32bit travis build --- libscpi/src/utils.c | 35 +++++++++++++++-------------------- 1 files changed, 15 insertions(+), 20 deletions(-) diff --git a/libscpi/src/utils.c b/libscpi/src/utils.c index 3d5f8c6..1e26e17 100644 --- a/libscpi/src/utils.c +++ b/libscpi/src/utils.c @@ -141,7 +141,7 @@ * @return number of bytes written to str (without '\0') */ size_t SCPI_Int32ToStr(int32_t val, char * str, size_t len) { - return UInt32ToStrBaseSign((int32_t) val, str, len, 10, TRUE); + return UInt32ToStrBaseSign((uint32_t) val, str, len, 10, TRUE); } /** @@ -229,7 +229,7 @@ * @return number of bytes written to str (without '\0') */ size_t SCPI_Int64ToStr(int64_t val, char * str, size_t len) { - return UInt64ToStrBaseSign((int64_t) val, str, len, 10, TRUE); + return UInt64ToStrBaseSign((uint64_t) val, str, len, 10, TRUE); } /** @@ -298,7 +298,7 @@ */ size_t strBaseToInt64(const char * str, int64_t * val, int8_t base) { char * endptr; - *val = strtol(str, &endptr, base); + *val = strtoll(str, &endptr, base); return endptr - str; } @@ -508,8 +508,7 @@ #define SKIP_CMD(n) do {cmd_ptr += (n); cmd_len -= (n);} while(0) scpi_bool_t result = FALSE; - int leftFlag = 0; // flag for '[' on left - int rightFlag = 0; // flag for ']' on right + int brackets = 0; int cmd_sep_pos = 0; size_t numbers_idx = 0; @@ -534,7 +533,7 @@ /* now support optional keywords in pattern style, e.g. [:MEASure]:VOLTage:DC? */ if (pattern_ptr[0] == '[') { // skip first '[' SKIP_PATTERN(1); - leftFlag++; + brackets++; } if (pattern_ptr[0] == ':') { // skip first ':' SKIP_PATTERN(1); @@ -554,10 +553,6 @@ while (1) { int pattern_sep_pos = patternSeparatorPos(pattern_ptr, pattern_len); - if ((leftFlag > 0) && (rightFlag > 0)) { - leftFlag--; - rightFlag--; - } cmd_sep_pos = cmdSeparatorPos(cmd_ptr, cmd_len); if ((pattern_sep_pos > 0) && pattern_ptr[pattern_sep_pos - 1] == '#') { @@ -595,16 +590,16 @@ pattern_sep_pos = patternSeparatorPos(pattern_ptr, pattern_len); switch (pattern_ptr[pattern_sep_pos]) { case '[': - leftFlag++; + brackets++; break; case ']': - leftFlag--; + brackets--; break; default: break; } SKIP_PATTERN(pattern_sep_pos + 1); - if (leftFlag == 0) { + if (brackets == 0) { if ((pattern_len > 0) && (pattern_ptr[0] == '[')) { continue; } else { @@ -630,14 +625,14 @@ && (pattern_ptr[1] == ':')) { SKIP_PATTERN(2); // for skip '[' in "[:" SKIP_CMD(1); - leftFlag++; + brackets++; } else if ((pattern_len > 1) && (pattern_ptr[1] == cmd_ptr[0]) && (pattern_ptr[0] == ']') && (pattern_ptr[1] == ':')) { SKIP_PATTERN(2); // for skip ']' in "]:" SKIP_CMD(1); - rightFlag++; + brackets--; } else if ((pattern_len > 2) && (pattern_ptr[2] == cmd_ptr[0]) && (pattern_ptr[0] == ']') @@ -645,8 +640,8 @@ && (pattern_ptr[2] == ':')) { SKIP_PATTERN(3); // for skip '][' in "][:" SKIP_CMD(1); - leftFlag++; - rightFlag++; + //brackets++; + //brackets--; } else { result = FALSE; break; @@ -655,13 +650,13 @@ SKIP_PATTERN(pattern_sep_pos); if ((pattern_ptr[0] == ']') && (pattern_ptr[1] == ':')) { SKIP_PATTERN(2); // for skip ']' in "]:" , pattern_ptr continue, while cmd_ptr remain unchanged - rightFlag++; + brackets--; } else if ((pattern_len > 2) && (pattern_ptr[0] == ']') && (pattern_ptr[1] == '[') && (pattern_ptr[2] == ':')) { SKIP_PATTERN(3); // for skip ']' in "][:" , pattern_ptr continue, while cmd_ptr remain unchanged - leftFlag++; - rightFlag++; + //brackets++; + //brackets--; } else { result = FALSE; break; -- Gitblit v1.9.1