]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/engine/Index.java
Add untested support for writing v6 files.
[Dictionary.git] / src / com / hughes / android / dictionary / engine / Index.java
index 30c18e2eb3bce1acd67ae9cac22d4ad102bb7637..e8d9789920a017cdc994296178a04653f869e534 100644 (file)
@@ -58,7 +58,7 @@ public final class Index implements RAFSerializable<Index> {
 
     // persisted: tells how the entries are sorted.
     public final Language sortLanguage;
-    private final String normalizerRules;
+    public final String normalizerRules;
 
     // Built from the two above.
     private Transliterator normalizer;
@@ -67,7 +67,7 @@ public final class Index implements RAFSerializable<Index> {
     public final List<IndexEntry> sortedIndexEntries;
 
     // persisted.
-    private final Set<String> stoplist;
+    public final Set<String> stoplist;
 
     // One big list!
     // Various sub-types.
@@ -158,9 +158,7 @@ public final class Index implements RAFSerializable<Index> {
         raf.writeUTF(sortLanguage.getIsoCode());
         raf.writeUTF(normalizerRules);
         raf.writeBoolean(swapPairEntries);
-        if (dict.dictFileVersion >= 2) {
-            raf.writeInt(mainTokenCount);
-        }
+        raf.writeInt(mainTokenCount);
         RAFList.write(raf, sortedIndexEntries, new IndexEntrySerializer(null), 32, true);
         StringUtil.writeVarInt(raf, stoplist.size());
         for (String i : stoplist) {
@@ -410,7 +408,8 @@ public final class Index implements RAFSerializable<Index> {
                 return -1;
             }
             final IndexEntry indexEntry = sortedIndexEntries.get(index);
-            if (!indexEntry.normalizedToken.startsWith(normalizedPrefix)) {
+            if (!indexEntry.normalizedToken.startsWith(normalizedPrefix) &&
+                !NormalizeComparator.withoutDash(indexEntry.normalizedToken).startsWith(normalizedPrefix)) {
                 break;
             }
             rowCount += indexEntry.numRows + indexEntry.htmlEntries.size();
@@ -500,7 +499,8 @@ public final class Index implements RAFSerializable<Index> {
                 return null;
             }
             final IndexEntry indexEntry = sortedIndexEntries.get(index);
-            if (!indexEntry.normalizedToken.startsWith(searchToken)) {
+            if (!indexEntry.normalizedToken.startsWith(searchToken) &&
+                !NormalizeComparator.withoutDash(indexEntry.normalizedToken).startsWith(searchToken)) {
                 break;
             }