From 32cefbbffc3521af688f365ac0eeeba919fe0c87 Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Thu, 19 Apr 2018 21:08:45 +0200 Subject: [PATCH] Transcode fourth digit of TACS phone number correctly, if it is 0. --- src/amps/amps.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/amps/amps.c b/src/amps/amps.c index 4533da7..3a33215 100644 --- a/src/amps/amps.c +++ b/src/amps/amps.c @@ -209,7 +209,7 @@ void amps_number2min(const char *number, uint32_t *min1, uint16_t *min2) *min1 |= digit2binary(number[4]) * 100 + digit2binary(number[5]) * 10 + digit2binary(number[6]) - 111; } else { /* MIN1 */ - *min1 = (number[0] - '0') << 20; + *min1 = digit2binary(number[0]) << 20; *min1 |= (digit2binary(number[1]) * 100 + digit2binary(number[2]) * 10 + digit2binary(number[3]) - 111) << 10; *min1 |= digit2binary(number[4]) * 100 + digit2binary(number[5]) * 10 + digit2binary(number[6]) - 111; } @@ -262,10 +262,10 @@ const char *amps_min12number(uint32_t min1) } } else { /* MIN1 */ - if ((min1 >> 20) > 9) + if ((min1 >> 20) < 1 || (min1 >> 20) > 10) number[0] = '?'; else - number[0] = '0' + (min1 >> 20); + number[0] = binary2digit(min1 >> 20); if (((min1 >> 10) & 0x3ff) > 999) strcpy(number + 1, "???"); else {