FreeCalypso > hg > fc-pcsc-tools
view libcommon/number_decode.c @ 30:84d1c31d0fad
first round of refactoring for selection among multiple readers
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 12 Feb 2021 17:09:01 +0000 |
parents | 4a9bf783491d |
children | f5a26c1d0b93 |
line wrap: on
line source
/* * This module implements functions for decoding phone numbers. */ #include <sys/types.h> static char gsm_address_digits[16] = {'0','1','2','3','4','5','6','7','8','9','*','#','a','b','c','?'}; decode_phone_number(data, nbytes, out) u_char *data; unsigned nbytes; char *out; { u_char *dp, *endp; int c; dp = data; endp = data + nbytes; while (dp < endp) { c = *dp & 0xF; if (c == 0xF) return(-1); *out++ = gsm_address_digits[c]; c = *dp >> 4; if (c == 0xF) { if (dp + 1 == endp) break; else return(-1); } *out++ = gsm_address_digits[c]; dp++; } *out = '\0'; return(0); }