#ifndef _SYSUTILS_UTILS_H // Number parsing static inline int parse_num_dig(char dig) { if((dig >= '0') && (dig <= '9')) { return dig - '0'; } else if((dig >= 'a') && (dig <= 'z')) { return dig - 'a'; } else if((dig >= 'A') && (dig <= 'Z')) { return dig - 'A'; } else { return -1; } } static inline int is_octal_dig(char dig) { int tmp; tmp = parse_num_dig(dig); if((tmp >= 0) && (tmp <= 7)) { return 1; } else { return 0; } } static inline int is_hex_dig(char dig) { int tmp; tmp = parse_num_dig(dig); if((tmp >= 0) && (tmp <= 15)) { return 1; } else { return 0; } } static inline int parse_octal_dig(char dig) { int tmp; tmp = parse_num_dig(dig); if((tmp >= 0) && (tmp <= 7)) { return tmp; } else { return -1; } } static inline int parse_hex_dig(char dig) { int tmp; tmp = parse_num_dig(dig); if((tmp >= 0) && (tmp <= 15)) { return tmp; } else { return -1; } } #endif