diff options
3 files changed, 13 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java index 323256d1c..965518e34 100644 --- a/java/src/com/android/inputmethod/latin/RichInputConnection.java +++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java @@ -357,9 +357,9 @@ public final class RichInputConnection { mExpectedSelEnd -= beforeLength; } else { // There are fewer characters before the cursor in the buffer than we are being asked to - // delete. Only delete what is there. - mExpectedSelStart = 0; + // delete. Only delete what is there, and update the end with the amount deleted. mExpectedSelEnd -= mExpectedSelStart; + mExpectedSelStart = 0; } if (null != mIC) { mIC.deleteSurroundingText(beforeLength, afterLength); diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp index 9441a75fc..fb80f38c5 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp @@ -68,6 +68,9 @@ namespace latinime { if (dirent->d_type == DT_DIR) { continue; } + if (strcmp(dirent->d_name, ".") == 0 || strcmp(dirent->d_name, "..") == 0) { + continue; + } const int filePathBufSize = getFilePathBufSize(dirPath, dirent->d_name); char filePath[filePathBufSize]; getFilePath(dirPath, dirent->d_name, filePathBufSize, filePath); diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java index d9c35c497..4d44135e6 100644 --- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java +++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java @@ -948,10 +948,13 @@ public class BinaryDictionaryTests extends AndroidTestCase { final HashSet<String> bigramWord1s = bigrams.get(word0); final WordProperty wordProperty = binaryDictionary.getWordProperty(word0); assertEquals(bigramWord1s.size(), wordProperty.mBigrams.size()); + final int unigramProbability = wordProperty.getProbability(); for (int j = 0; j < wordProperty.mBigrams.size(); j++) { final String word1 = wordProperty.mBigrams.get(j).mWord; assertTrue(bigramWord1s.contains(word1)); - final int probability = wordProperty.mBigrams.get(j).getProbability(); + final int bigramProbability = wordProperty.mBigrams.get(j).getProbability(); + final int probability = binaryDictionary.calculateProbability( + unigramProbability, bigramProbability); assertEquals((int)bigramProbabilities.get(new Pair<String, String>(word0, word1)), probability); assertEquals(wordProperty.mBigrams.get(j).getProbability(), probability); @@ -1037,11 +1040,14 @@ public class BinaryDictionaryTests extends AndroidTestCase { assertEquals((int)wordProbabilitiesToCheckLater.get(word0), wordProperty.mProbabilityInfo.mProbability); wordSet.remove(word0); + final int unigramProbability = wordProperty.getProbability(); final HashSet<String> bigramWord1s = bigrams.get(word0); for (int j = 0; j < wordProperty.mBigrams.size(); j++) { final String word1 = wordProperty.mBigrams.get(j).mWord; assertTrue(bigramWord1s.contains(word1)); - final int probability = wordProperty.mBigrams.get(j).getProbability(); + final int bigramProbability = wordProperty.mBigrams.get(j).getProbability(); + final int probability = binaryDictionary.calculateProbability( + unigramProbability, bigramProbability); final Pair<String, String> bigram = new Pair<String, String>(word0, word1); assertEquals((int)bigramProbabilitiesToCheckLater.get(bigram), probability); bigramSet.remove(bigram); |