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;
}