NMT: Allow NULL (B'0000') to be used as country selector in traffic area
This commit is contained in:
parent
57d4d1739e
commit
e653475ff7
|
@ -71,7 +71,9 @@ void nmt_value2digits(uint64_t value, char *digits, int num)
|
||||||
digit = (value >> ((num - 1 - i) << 2)) & 0xf;
|
digit = (value >> ((num - 1 - i) << 2)) & 0xf;
|
||||||
if (digit == 10)
|
if (digit == 10)
|
||||||
digits[i] = '0';
|
digits[i] = '0';
|
||||||
else if (digit == 0 || digit > 10)
|
else if (digit == 0)
|
||||||
|
digits[i] = 'N';
|
||||||
|
else if (digit > 10)
|
||||||
digits[i] = '?';
|
digits[i] = '?';
|
||||||
else
|
else
|
||||||
digits[i] = digit + '0';
|
digits[i] = digit + '0';
|
||||||
|
@ -88,8 +90,10 @@ uint64_t nmt_digits2value(const char *digits, int num)
|
||||||
digit = *digits++;
|
digit = *digits++;
|
||||||
if (digit >= '1' && digit <= '9')
|
if (digit >= '1' && digit <= '9')
|
||||||
value |= digit - '0';
|
value |= digit - '0';
|
||||||
else
|
else if (digit == '0')
|
||||||
value |= 10;
|
value |= 10;
|
||||||
|
else
|
||||||
|
value |= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
|
|
|
@ -168,7 +168,10 @@ error_ta:
|
||||||
goto error_ta;
|
goto error_ta;
|
||||||
if (*p < '0' || *p > '9')
|
if (*p < '0' || *p > '9')
|
||||||
goto error_ta;
|
goto error_ta;
|
||||||
traffic_area[0] = rc + '0';
|
if (rc == -1)
|
||||||
|
traffic_area[0] = 'N';
|
||||||
|
else
|
||||||
|
traffic_area[0] = rc + '0';
|
||||||
traffic_area[1] = *p;
|
traffic_area[1] = *p;
|
||||||
traffic_area[2] = '\0';
|
traffic_area[2] = '\0';
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,6 +284,8 @@ static struct nmt_country {
|
||||||
{ 2, "RU2", "", "" },
|
{ 2, "RU2", "", "" },
|
||||||
{ 3, "RU3", "", "" },
|
{ 3, "RU3", "", "" },
|
||||||
{ 4, "RU4", "", "" },
|
{ 4, "RU4", "", "" },
|
||||||
|
{ 4, "RU4", "", "" },
|
||||||
|
{ -1, "NULL", "", "" },
|
||||||
{ 0, NULL, NULL, NULL }
|
{ 0, NULL, NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue