diff --git a/data_embed/index.html b/data_embed/index.html index 16ef656..faf8649 100644 --- a/data_embed/index.html +++ b/data_embed/index.html @@ -581,7 +581,7 @@ WIDE1 (fill-in) Digi diff --git a/src/utils.cpp b/src/utils.cpp index c653e48..6834c65 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -348,17 +348,21 @@ namespace Utils { cleanCallsign = " " + cleanCallsign; // A0AA --> _A0AA } - if (!isDigit(cleanCallsign[2]) || !isAlpha(cleanCallsign[3])) return false; // __0A must be validated + if (!isDigit(cleanCallsign[2]) || !isAlpha(cleanCallsign[3])) { // __0A__ must be validated + if (cleanCallsign[0] != 'R' && !isDigit(cleanCallsign[1]) && !isAlpha(cleanCallsign[2])) return false; // to accepto R0A___ + } bool isValid = false; if ((isAlphaNumeric(cleanCallsign[0]) || cleanCallsign[0] == ' ') && isAlpha(cleanCallsign[1])) { isValid = true; // AA0A (+A+A) + _A0AA (+A) + 0A0A (+A+A) } else if (isAlpha(cleanCallsign[0]) && isDigit(cleanCallsign[1])) { isValid = true; // A00A (+A+A) + } else if (cleanCallsign[0] == 'R' && cleanCallsign.length() == 6 && isDigit(cleanCallsign[1]) && isAlpha(cleanCallsign[2]) && isAlpha(cleanCallsign[3]) && isAlpha(cleanCallsign[4])) { + isValid = true; // R0AA (+A+A) } if (!isValid) return false; // also 00__ avoided - if (cleanCallsign.length() > 4) { + if (cleanCallsign.length() > 4) { // to validate ____AA for (int i = 5; i <= cleanCallsign.length(); i++) { if (!isAlpha(cleanCallsign[i - 1])) return false; }