author | viric@llimona |
Sun, 29 Jul 2007 23:28:51 +0200 | |
changeset 25 | 764c48b54327 |
parent 21 | 0739404e26dc |
child 28 | dccb4ae23699 |
permissions | -rw-r--r-- |
0 | 1 |
package jdict; |
2 |
||
3 |
import java.io.*; |
|
4 |
import java.util.Vector; |
|
5 |
||
6 |
public class DictIndex |
|
7 |
{ |
|
2 | 8 |
BlockFile in; |
0 | 9 |
|
10 |
String index_basename; |
|
11 |
String defs_basename; |
|
12 |
int index_id; |
|
13 |
||
11 | 14 |
int top_index; |
15 |
||
0 | 16 |
public DictIndex(String dictname) |
17 |
{ |
|
18 |
index_basename = "/dicts/x-" + dictname + ".index"; |
|
2 | 19 |
in = new BlockFile(index_basename); |
11 | 20 |
get_top_index(); |
21 |
} |
|
22 |
||
23 |
public void get_top_index() |
|
24 |
{ |
|
25 |
InputStream bfile = getClass().getResourceAsStream("/dicts/TOPINDEX"); |
|
26 |
/* 10 bytes is enough for a simple int */ |
|
27 |
byte array[] = new byte[10]; |
|
28 |
int total; |
|
29 |
try { |
|
30 |
total = bfile.read(array, 0, 10); |
|
31 |
} catch (IOException e) |
|
32 |
{ |
|
33 |
System.out.println("Cannot open TOPINDEX."); |
|
34 |
top_index = 0; |
|
35 |
return; |
|
36 |
} |
|
37 |
/* This will have '\n' */ |
|
38 |
String str = new String(array, 0, total - 1 /* - \n */); |
|
39 |
top_index = Integer.parseInt(str); |
|
40 |
System.out.println("Top Index: " + |
|
41 |
new Integer(top_index).toString()); |
|
0 | 42 |
} |
43 |
||
44 |
public String getName() |
|
45 |
{ |
|
25 | 46 |
byte tmp[] = new byte[100]; |
0 | 47 |
int i; |
48 |
||
49 |
i = 0; |
|
50 |
do |
|
51 |
{ |
|
52 |
try { |
|
53 |
int c = in.read(); |
|
54 |
if (c == -1) |
|
55 |
{ |
|
2 | 56 |
System.out.println("EOF in getName"); |
57 |
break; |
|
0 | 58 |
} |
59 |
tmp[i] = (byte) c; |
|
60 |
} catch (IOException e) |
|
61 |
{ |
|
62 |
System.out.println("IO Exception: " + e.getMessage()); |
|
2 | 63 |
break; |
0 | 64 |
} |
65 |
i += 1; |
|
25 | 66 |
} while (tmp[i-1] != '\t' /* tab */ && i < 100); |
0 | 67 |
|
2 | 68 |
if (i == 51 || i == 0) |
0 | 69 |
return null; |
70 |
||
8 | 71 |
String result; |
72 |
try { |
|
73 |
result = new String(tmp, 0, i-1, "UTF-8"); |
|
74 |
} catch (UnsupportedEncodingException e) |
|
75 |
{ |
|
76 |
System.out.println("Unsupported encoding."); |
|
77 |
return null; |
|
78 |
} |
|
79 |
return result; |
|
0 | 80 |
} |
81 |
||
82 |
public int getLength() |
|
83 |
{ |
|
84 |
/* We reuse getOffset, as it breaks on \n too */ |
|
85 |
return getOffset(); |
|
86 |
} |
|
87 |
||
88 |
public int getOffset() |
|
89 |
{ |
|
25 | 90 |
byte tmp[] = new byte[100]; |
0 | 91 |
int i; |
92 |
||
93 |
i = 0; |
|
94 |
do |
|
95 |
{ |
|
96 |
try { |
|
97 |
int c = in.read(); |
|
98 |
if (c == -1) |
|
99 |
{ |
|
2 | 100 |
System.out.println("EOF in getOffest"); |
0 | 101 |
return -1; |
102 |
} |
|
103 |
tmp[i] = (byte) c; |
|
104 |
} catch (IOException e) |
|
105 |
{ |
|
106 |
System.out.println("IO Exception: " + e.getMessage()); |
|
107 |
return -1; |
|
108 |
} |
|
109 |
i += 1; |
|
25 | 110 |
} while (tmp[i-1] != '\t' /* tab */ && tmp[i-1] != '\n' && i < 100); |
0 | 111 |
|
112 |
if (i == 51) |
|
113 |
return -1; |
|
114 |
||
115 |
return IA5toNumber(tmp, i-1); |
|
116 |
} |
|
117 |
||
118 |
public void readUntilNewLine() |
|
119 |
{ |
|
120 |
byte tmp; |
|
121 |
||
122 |
do |
|
123 |
{ |
|
124 |
try { |
|
125 |
int c = in.read(); |
|
126 |
if (c == -1) |
|
127 |
{ |
|
2 | 128 |
System.out.println("EOF in readUntilNewLine"); |
0 | 129 |
return; |
130 |
} |
|
131 |
tmp = (byte) c; |
|
132 |
} catch (IOException e) |
|
133 |
{ |
|
134 |
System.out.println("IO Exception: " + e.getMessage()); |
|
135 |
return; |
|
136 |
} |
|
137 |
} while (tmp != '\n'); |
|
138 |
||
139 |
} |
|
140 |
||
141 |
public int IA5value(byte letter) |
|
142 |
{ |
|
143 |
switch(letter) |
|
144 |
{ |
|
145 |
case 'A': return 0; |
|
146 |
case 'B': return 1; |
|
147 |
case 'C': return 2; |
|
148 |
case 'D': return 3; |
|
149 |
case 'E': return 4; |
|
150 |
case 'F': return 5; |
|
151 |
case 'G': return 6; |
|
152 |
case 'H': return 7; |
|
153 |
case 'I': return 8; |
|
154 |
case 'J': return 9; |
|
155 |
case 'K': return 10; |
|
156 |
case 'L': return 11; |
|
157 |
case 'M': return 12; |
|
158 |
case 'N': return 13; |
|
159 |
case 'O': return 14; |
|
160 |
case 'P': return 15; |
|
161 |
case 'Q': return 16; |
|
162 |
case 'R': return 17; |
|
163 |
case 'S': return 18; |
|
164 |
case 'T': return 19; |
|
165 |
case 'U': return 20; |
|
166 |
case 'V': return 21; |
|
167 |
case 'W': return 22; |
|
168 |
case 'X': return 23; |
|
169 |
case 'Y': return 24; |
|
170 |
case 'Z': return 25; |
|
171 |
case 'a': return 26; |
|
172 |
case 'b': return 27; |
|
173 |
case 'c': return 28; |
|
174 |
case 'd': return 29; |
|
175 |
case 'e': return 30; |
|
176 |
case 'f': return 31; |
|
177 |
case 'g': return 32; |
|
178 |
case 'h': return 33; |
|
179 |
case 'i': return 34; |
|
180 |
case 'j': return 35; |
|
181 |
case 'k': return 36; |
|
182 |
case 'l': return 37; |
|
183 |
case 'm': return 38; |
|
184 |
case 'n': return 39; |
|
185 |
case 'o': return 40; |
|
186 |
case 'p': return 41; |
|
187 |
case 'q': return 42; |
|
188 |
case 'r': return 43; |
|
189 |
case 's': return 44; |
|
190 |
case 't': return 45; |
|
191 |
case 'u': return 46; |
|
192 |
case 'v': return 47; |
|
193 |
case 'w': return 48; |
|
194 |
case 'x': return 49; |
|
195 |
case 'y': return 50; |
|
196 |
case 'z': return 51; |
|
197 |
case '0': return 52; |
|
198 |
case '1': return 53; |
|
199 |
case '2': return 54; |
|
200 |
case '3': return 55; |
|
201 |
case '4': return 56; |
|
202 |
case '5': return 57; |
|
203 |
case '6': return 58; |
|
204 |
case '7': return 59; |
|
205 |
case '8': return 60; |
|
206 |
case '9': return 61; |
|
207 |
case '+': return 62; |
|
208 |
case '/': return 63; |
|
209 |
default: |
|
210 |
return 0; |
|
211 |
} |
|
212 |
} |
|
213 |
||
214 |
public int IA5toNumber(byte array[], int length) |
|
215 |
{ |
|
216 |
int i = 0; |
|
217 |
int value = 0; |
|
218 |
||
219 |
while (i < length) |
|
220 |
{ |
|
15 | 221 |
/* DEBUG |
0 | 222 |
System.out.println("Value1: " + new Integer(value).toString()); |
223 |
System.out.println("Array[i]: " + (char) array[i]); |
|
224 |
System.out.println("IA5Value: " + |
|
225 |
new Integer(IA5value(array[i])).toString()); |
|
15 | 226 |
*/ |
0 | 227 |
|
228 |
value = IA5value(array[i]) + value * 64; |
|
229 |
||
230 |
System.out.println("Value2: " + new Integer(value).toString()); |
|
231 |
i += 1; |
|
232 |
} |
|
233 |
return value; |
|
234 |
} |
|
235 |
||
236 |
public String EntryToString() |
|
237 |
{ |
|
238 |
String name = getName(); |
|
239 |
int offset = getOffset(); |
|
240 |
int length = getLength(); |
|
241 |
||
242 |
return new String(name + " " + new Integer(offset).toString() + |
|
243 |
" " + new Integer(length).toString()); |
|
244 |
} |
|
245 |
||
246 |
public boolean WordMatches(String w1, String w2) |
|
247 |
{ |
|
2 | 248 |
/* System.out.println("Comparing " + w1 + " to " + w2);*/ |
0 | 249 |
if (w1.equals(w2)) |
250 |
return true; |
|
251 |
return false; |
|
252 |
} |
|
253 |
||
254 |
public Vector SearchDefinition(String word) |
|
255 |
{ |
|
14 | 256 |
return SearchDefinition(word, -1); |
257 |
} |
|
258 |
||
259 |
/* if max >0, limit the search. */ |
|
260 |
public Vector SearchDefinition(String word, int max) |
|
261 |
{ |
|
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
262 |
try { |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
263 |
in.seekFromStart(0); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
264 |
} catch (IOException e) |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
265 |
{ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
266 |
System.out.println("Cannot go back to start in search def."); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
267 |
} |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
268 |
|
0 | 269 |
Vector results = new Vector(); |
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
270 |
|
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
271 |
return SearchNextDefinition(results, word, max); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
272 |
} |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
273 |
|
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
274 |
/* if max >0, limit the search. */ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
275 |
public Vector SearchNextDefinition(Vector results, String word, int max) |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
276 |
{ |
14 | 277 |
int count = 0; |
278 |
System.out.println("Searching " + word); |
|
0 | 279 |
|
280 |
String test; |
|
281 |
do |
|
282 |
{ |
|
14 | 283 |
if (max > 0 && count > max) |
284 |
{ |
|
285 |
/* Void results */ |
|
286 |
break; |
|
287 |
} |
|
288 |
test = getName(); |
|
0 | 289 |
|
290 |
if (test == null) |
|
291 |
break; |
|
292 |
if (WordMatches(word,test)) |
|
293 |
{ |
|
294 |
int offset = getOffset(); |
|
295 |
int length = getLength(); |
|
296 |
System.out.println("Definition for " + word + " at " + |
|
297 |
new Integer(offset).toString() + " length " + |
|
298 |
new Integer(length).toString()); |
|
19 | 299 |
/*String definition = defs.getDefinition(offset, length);*/ |
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
300 |
Vorto vorto = new Vorto(test, offset, length); |
0 | 301 |
|
19 | 302 |
results.addElement(vorto); |
0 | 303 |
} else |
304 |
{ |
|
305 |
readUntilNewLine(); |
|
306 |
} |
|
14 | 307 |
++count; |
0 | 308 |
} while (test != null); |
309 |
||
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
310 |
return results; |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
311 |
} |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
312 |
|
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
313 |
/* if max >0, limit the search. */ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
314 |
public Vector SearchNextPrefixes(Vector results, String word, int max) |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
315 |
{ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
316 |
int count = 0; |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
317 |
System.out.println("Searching " + word); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
318 |
|
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
319 |
String test; |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
320 |
do |
14 | 321 |
{ |
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
322 |
if (max > 0 && count > max) |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
323 |
{ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
324 |
/* Void results */ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
325 |
break; |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
326 |
} |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
327 |
test = getName(); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
328 |
|
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
329 |
if (test == null) |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
330 |
break; |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
331 |
if (test.startsWith(word)) |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
332 |
{ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
333 |
int offset = getOffset(); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
334 |
int length = getLength(); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
335 |
System.out.println("Definition for " + word + " at " + |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
336 |
new Integer(offset).toString() + " length " + |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
337 |
new Integer(length).toString()); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
338 |
/*String definition = defs.getDefinition(offset, length);*/ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
339 |
Vorto vorto = new Vorto(test, offset, length); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
340 |
|
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
341 |
results.addElement(vorto); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
342 |
readUntilNewLine(); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
343 |
} else |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
344 |
{ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
345 |
break; |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
346 |
} |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
347 |
++count; |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
348 |
} while (test != null); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
349 |
|
0 | 350 |
return results; |
351 |
} |
|
11 | 352 |
|
353 |
public Vector BinarySearchDefinition(String word) |
|
354 |
{ |
|
355 |
Vector results = new Vector(); |
|
356 |
int pivot = top_index / 2; |
|
357 |
int step = top_index / 2; |
|
358 |
||
359 |
String test; |
|
360 |
do |
|
361 |
{ |
|
362 |
System.out.println("Pivoting to " + |
|
363 |
new Integer(pivot).toString()); |
|
364 |
try { |
|
365 |
in.seekFromStart(pivot); |
|
366 |
} catch (IOException e) |
|
367 |
{ |
|
368 |
System.out.println("Seek from start error"); |
|
369 |
return results; |
|
370 |
} |
|
371 |
readUntilNewLine(); |
|
372 |
test = getName(); |
|
373 |
if (test == null) |
|
374 |
break; |
|
375 |
int comparision = word.compareTo(test); |
|
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
376 |
System.out.println("Comparing to " + test); |
11 | 377 |
if (comparision == 0) |
378 |
{ |
|
379 |
int offset = getOffset(); |
|
380 |
int length = getLength(); |
|
381 |
System.out.println("Definition for " + word + " at " + |
|
382 |
new Integer(offset).toString() + " length " + |
|
383 |
new Integer(length).toString()); |
|
384 |
||
19 | 385 |
/*String definition = defs.getDefinition(offset, length);*/ |
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
386 |
Vorto vorto = new Vorto(test, offset, length); |
19 | 387 |
|
388 |
results.addElement(vorto); |
|
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
389 |
break; |
11 | 390 |
} else if (comparision < 0) |
391 |
{ |
|
392 |
step = step / 2; |
|
393 |
pivot = pivot - step; |
|
394 |
} else if (comparision > 0) |
|
395 |
{ |
|
396 |
step = step / 2; |
|
397 |
pivot = pivot + step; |
|
398 |
} |
|
399 |
} while (step > 0); |
|
400 |
||
21
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
401 |
/* If we didn't find a word, replace the pivot */ |
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
402 |
if (results.size() == 0) |
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
403 |
{ |
21
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
404 |
try { |
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
405 |
in.seekFromStart(pivot); |
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
406 |
} catch (IOException e) |
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
407 |
{ |
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
408 |
System.out.println("Seek from start error"); |
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
409 |
return results; |
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
410 |
} |
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
411 |
} |
21
0739404e26dc
Fixed prefix results when the prefix matches a word.
viric@mandarina
parents:
20
diff
changeset
|
412 |
|
20
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
413 |
readUntilNewLine(); |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
414 |
|
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
415 |
/* Add the prefixes */ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
416 |
SearchNextPrefixes(results, word, 49); /* Max 50 prefixes. Match+nexts*/ |
2f815ca5cb8c
Added prefix search and 'Transliterigo' saving in record.
viric@mandarina
parents:
19
diff
changeset
|
417 |
|
11 | 418 |
return results; |
419 |
} |
|
0 | 420 |
} |