aboutsummaryrefslogtreecommitdiffstats
path: root/native/src/correction.cpp
diff options
context:
space:
mode:
authorsatok <satok@google.com>2011-12-15 10:10:56 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-12-15 10:10:56 -0800
commitc29688749746aa5a0c3cf7d29a542975609aa1bd (patch)
tree52c0685218832a4036e5cc4d1f2883feeca4297b /native/src/correction.cpp
parent0b910d79d2b640bb6c060f728c4dcd5e0f0339cc (diff)
parentd03317c4be21ee65c19d00c7b83a7042042b8627 (diff)
downloadlatinime-c29688749746aa5a0c3cf7d29a542975609aa1bd.tar.gz
latinime-c29688749746aa5a0c3cf7d29a542975609aa1bd.tar.xz
latinime-c29688749746aa5a0c3cf7d29a542975609aa1bd.zip
am d03317c4: Prune traversing a bit agressively and add a flag not to do auto completion
* commit 'd03317c4be21ee65c19d00c7b83a7042042b8627': Prune traversing a bit agressively and add a flag not to do auto completion
Diffstat (limited to 'native/src/correction.cpp')
-rw-r--r--native/src/correction.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/native/src/correction.cpp b/native/src/correction.cpp
index 22ee75a24..364913f38 100644
--- a/native/src/correction.cpp
+++ b/native/src/correction.cpp
@@ -145,7 +145,7 @@ void Correction::initCorrectionState(
void Correction::setCorrectionParams(const int skipPos, const int excessivePos,
const int transposedPos, const int spaceProximityPos, const int missingSpacePos,
- const bool useFullEditDistance) {
+ const bool useFullEditDistance, const bool doAutoCompletion) {
// TODO: remove
mTransposedPos = transposedPos;
mExcessivePos = excessivePos;
@@ -158,6 +158,7 @@ void Correction::setCorrectionParams(const int skipPos, const int excessivePos,
mSpaceProximityPos = spaceProximityPos;
mMissingSpacePos = missingSpacePos;
mUseFullEditDistance = useFullEditDistance;
+ mDoAutoCompletion = doAutoCompletion;
}
void Correction::checkState() {
@@ -279,7 +280,9 @@ void Correction::startToTraverseAllNodes() {
bool Correction::needsToPrune() const {
// TODO: use edit distance here
- return mOutputIndex - 1 >= mMaxDepth || mProximityCount > mMaxEditDistance;
+ return mOutputIndex - 1 >= mMaxDepth || mProximityCount > mMaxEditDistance
+ // Allow one char longer word for missing character
+ || (!mDoAutoCompletion && (mOutputIndex + 1 >= mInputLength));
}
void Correction::addCharToCurrentWord(const int32_t c) {