summaryrefslogtreecommitdiff
path: root/android/OldPhoneNumberUtils.cpp
diff options
context:
space:
mode:
authorHui Yu <huiyu@google.com>2019-08-05 21:41:56 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-08-05 21:41:56 +0000
commit39ceab0aea1636255de8f75e8b8c7c91ce41fee7 (patch)
tree497944b3f39d398e3fbdc7691baff60e9a51ab75 /android/OldPhoneNumberUtils.cpp
parent1c54a19a066e015947d2dc0d31761a0edaaa15e7 (diff)
parent15cec8f2872b2b9d42c5484b376da8d3fa26ad6f (diff)
Merge "Support loose comparison using minimum matched chars"
Diffstat (limited to 'android/OldPhoneNumberUtils.cpp')
-rw-r--r--android/OldPhoneNumberUtils.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/android/OldPhoneNumberUtils.cpp b/android/OldPhoneNumberUtils.cpp
index 9846a1c..3a69e0c 100644
--- a/android/OldPhoneNumberUtils.cpp
+++ b/android/OldPhoneNumberUtils.cpp
@@ -159,13 +159,13 @@ static bool matchIntlPrefixAndCC(const char* a, int len)
* enough for caller ID purposes.
*
* - Compares from right to left
- * - requires MIN_MATCH (7) characters to match
+ * - requires minimum characters to match
* - handles common trunk prefixes and international prefixes
* (basically, everything except the Russian trunk prefix)
*
* Tolerates nulls
*/
-bool phone_number_compare_loose(const char* a, const char* b)
+bool phone_number_compare_loose_with_minmatch(const char* a, const char* b, int min_match)
{
int ia, ib;
int matched;
@@ -216,11 +216,11 @@ bool phone_number_compare_loose(const char* a, const char* b)
}
}
- if (matched < MIN_MATCH) {
+ if (matched < min_match) {
const int effectiveALen = strlen(a) - numSeparatorCharsInA;
const int effectiveBLen = strlen(b) - numSeparatorCharsInB;
- // if the number of dialable chars in a and b match, but the matched chars < MIN_MATCH,
+ // if the number of dialable chars in a and b match, but the matched chars < min_match,
// treat them as equal (i.e. 404-04 and 40404)
if (effectiveALen == effectiveBLen && effectiveALen == matched) {
return true;
@@ -230,7 +230,7 @@ bool phone_number_compare_loose(const char* a, const char* b)
}
// At least one string has matched completely;
- if (matched >= MIN_MATCH && (ia < 0 || ib < 0)) {
+ if (matched >= min_match && (ia < 0 || ib < 0)) {
return true;
}
@@ -274,4 +274,9 @@ bool phone_number_compare_loose(const char* a, const char* b)
return false;
}
+bool phone_number_compare_loose(const char* a, const char* b)
+{
+ return phone_number_compare_loose_with_minmatch(a, b, MIN_MATCH);
+}
+
} // namespace android