summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/utils.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/utils.c b/src/utils.c
index f5894d89..a62f5e97 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -117,7 +117,14 @@ char osmo_bcd2char(uint8_t bcd)
*/
uint8_t osmo_char2bcd(char c)
{
- return c - 0x30;
+ if (c >= '0' && c <= '9')
+ return c - 0x30;
+ else if (c >= 'A' && c <= 'F')
+ return 0xa + (c - 'A');
+ else if (c >= 'a' && c <= 'f')
+ return 0xa + (c - 'a');
+ else
+ return 0;
}
/*! Parse a string containing hexadecimal digits