| | |
| | | } |
| | | |
| | | /** |
| | | * Converts string to unsigned 32bit integer representation |
| | | * @param str string value |
| | | * @param val 32bit integer result |
| | | * @return number of bytes used in string |
| | | */ |
| | | size_t strToULong(const char * str, uint32_t * val, int8_t base) { |
| | | char * endptr; |
| | | *val = strtoul(str, &endptr, base); |
| | | return endptr - str; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Converts string to double representation |
| | | * @param str string value |
| | | * @param val double result |
| | |
| | | * @param len - max search length |
| | | * @return position of separator or len |
| | | */ |
| | | size_t patternSeparatorShortPos(const char * pattern, size_t len) { |
| | | static size_t patternSeparatorShortPos(const char * pattern, size_t len) { |
| | | size_t i; |
| | | for (i = 0; (i < len) && pattern[i]; i++) { |
| | | if (islower((unsigned char) pattern[i])) { |
| | |
| | | * @param len - max search length |
| | | * @return position of separator or len |
| | | */ |
| | | size_t patternSeparatorPos(const char * pattern, size_t len) { |
| | | static size_t patternSeparatorPos(const char * pattern, size_t len) { |
| | | |
| | | char * separator = strnpbrk(pattern, len, "?:[]"); |
| | | if (separator == NULL) { |
| | |
| | | * @param len - max search length |
| | | * @return position of separator or len |
| | | */ |
| | | size_t cmdSeparatorPos(const char * cmd, size_t len) { |
| | | static size_t cmdSeparatorPos(const char * cmd, size_t len) { |
| | | char * separator = strnpbrk(cmd, len, ":?"); |
| | | size_t result; |
| | | if (separator == NULL) { |
| | |
| | | int rightFlag = 0; // flag for ']' on right |
| | | int cmd_sep_pos = 0; |
| | | |
| | | size_t numbers_idx = -1; |
| | | size_t numbers_idx = 0; |
| | | int32_t *number_ptr = NULL; |
| | | |
| | | const char * pattern_ptr = pattern; |
| | |
| | | } |
| | | |
| | | if (pattern_ptr[pattern_sep_pos - 1] == '#') { |
| | | numbers_idx++; |
| | | if (numbers && (numbers_idx < numbers_len)) { |
| | | number_ptr = numbers + numbers_idx; |
| | | *number_ptr = 1; // default value |
| | | } else { |
| | | number_ptr = NULL; |
| | | } |
| | | numbers_idx++; |
| | | } else { |
| | | number_ptr = NULL; |
| | | } |
| | |
| | | if (c1 != c2) { |
| | | return c1 - c2; |
| | | } |
| | | if (c1 = '\0') { |
| | | if (c1 == '\0') { |
| | | return 0; |
| | | } |
| | | } |