Fix a bug of handling single quote in the correction algorithm
Bug: 6096247
Change-Id: I5490bbdee4ce1e3e0729ec1510a2baab85eeaf05
diff --git a/native/jni/src/correction.cpp b/native/jni/src/correction.cpp
index 376e9a1..a1f8129 100644
--- a/native/jni/src/correction.cpp
+++ b/native/jni/src/correction.cpp
@@ -344,8 +344,10 @@
mDistances[mOutputIndex] =
mProximityInfo->getNormalizedSquaredDistance(mInputIndex, proximityIndex);
}
- incrementInputIndex();
- incremented = true;
+ if (!isQuote(c)) {
+ incrementInputIndex();
+ incremented = true;
+ }
}
return processSkipChar(c, isTerminal, incremented);
}
@@ -710,7 +712,7 @@
ed = max(0, ed - quoteDiffCount);
adjustedProximityMatchedCount = min(max(0, ed - (outputLength - inputLength)),
proximityMatchedCount);
- if (transposedCount < 1) {
+ if (transposedCount <= 0) {
if (ed == 1 && (inputLength == outputLength - 1 || inputLength == outputLength + 1)) {
// Promote a word with just one skipped or excessive char
if (sameLength) {