c-bootbox/sysutils/utils.h

64 lines
927 B
C

#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