2005-11-14 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / corlib / Mono.Globalization.Unicode / ChangeLog
1 2005-11-14  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * SimpleCollator.cs :
4           - Added CompareOrdinalIgnoreCase() for NET_2_0 RTM.
5           - Reduced extra parameter from LastIndexOfSortKey().
6           - LastIndexOf() should use GetTailContraction for the source string.
7             And then, target could match in the middle of the possible
8             "replacement contraction" of the source string, so use
9             LastIndexOfSortKey() to catch them.
10           - Fixed GetTailContraction() that caused index out of range.
11
12 2005-11-11  Atsushi Enomoto  <atsushi@ximian.com>
13
14         * Makefile : Now use MONO_DISABLE_MANAGED_COLLATION.
15         * SortKey.cs : some members are virtual.
16
17 2005-10-14  Atsushi Enomoto  <atsushi@ximian.com>
18
19         * SimpleCollator.cs : modified to use stackalloc for byte array.
20
21 2005-09-27  Atsushi Enomoto  <atsushi@ximian.com>
22
23         * SimpleCollator.cs : in CompareInternal(), there was a possibility of
24           infinite loop. Fixed bug #76243.
25
26 2005-09-20  Atsushi Enomoto  <atsushi@ximian.com>
27
28         * SimpleCollator.cs : In IsPrefix/IsSuffix, if target is an empty string,
29           immediately return true.
30
31 2005-09-09  Atsushi Enomoto  <atsushi@ximian.com>
32
33         * SimpleCollator.cs : IsSuffix() optimization logic was buggy, so just
34           use pretty simple way with LastIndexOf() (no significant perf.
35           problem).
36
37 2005-09-01  Atsushi Enomoto  <atsushi@ximian.com>
38
39         * README, Collation-notes.txt, CollationDataStructures.txt :
40           removing obsolete info and some added some notes.
41
42 2005-08-10  Atsushi Enomoto  <atsushi@ximian.com>
43
44         * Normalization.cs : remove warned code.
45         * managed-collation.patch : now it's not required anymore.
46
47 2005-08-10  Atsushi Enomoto  <atsushi@ximian.com>
48
49         * MSCompatUnicodeTable.cs : added IsSortable(string).
50
51 2005-08-10  Atsushi Enomoto  <atsushi@ximian.com>
52
53         * SimpleCollator.cs : Now all collator methods are thread safe.
54
55           All instance non-readonly fields turned into arguments of every
56           methods that use those fields.
57           (Sadly it is the end of no-memory-cost collator era. mcs bootstrap
58           now needs +100KB memory consumption.)
59
60 2005-08-09  Atsushi Enomoto  <atsushi@ximian.com>
61
62         * SimpleCollator.cs : made "checkedFlags" as nullable and made it as
63           an argument of every index methods (to make it thread safe).
64
65 2005-08-09  Atsushi Enomoto  <atsushi@ximian.com>
66
67         * SimpleCollator.cs,
68           MSCompatUnicodeTable.cs :
69           - Now IsIgnorable() is aggregated to be one invokation to check 
70             completely ignorable, nonspacing and symbols.
71           - Introduced "already checked" flags for IndexOf() and LastIndexOf()
72             to skip sortkey binary check on the same characters. Significant
73             perf. improvement for such case as IndexOf("AABCBABC...Z",'Z').
74
75 2005-08-08  Gert Driesen  <drieseng@users.sourceforge.net>
76
77         * SortKey.cs: Marked Serializable to match MS.NET.
78
79 2005-08-08  Atsushi Enomoto  <atsushi@ximian.com>
80
81         * create-mscompat-collation-table.cs,
82           Makefile : changed resources output directory.
83
84 2005-08-04  Atsushi Enomoto  <atsushi@ximian.com>
85
86         * create-normalization-tests.cs,
87           StringNormalizationTestSource.cs : new files for Unicode
88           Normalization test generator.
89         * Makefile : added support for above.
90
91 2005-08-03  Atsushi Enomoto  <atsushi@ximian.com>
92
93         * NormalizationTableUtil.cs : oops, it does not compile.
94         * managed-collation.patch : I guess having managed resource would be
95           better for collation. At least current code has such #define so
96           Makefile should be in sync with it.
97
98 2005-08-03  Atsushi Enomoto  <atsushi@ximian.com>
99
100         * create-normalization-source.cs : Fixed CharMapComparer which 
101           incorrectly returned 0 when the second arg is shorter. Reduced
102           extraneous helperIndex map. Other minor fixes and code removal.
103         * Normalization.cs : several fixes to support blocked combine handling.
104         * NormalizationTableUtil.cs : tiny member renaming.
105
106 2005-08-03  Atsushi Enomoto  <atsushi@ximian.com>
107
108         * create-normalization-source.cs,
109           NormalizationTableUtil.cs,
110           Normalization.cs : several bugfixes on index miscomputation.
111           Renamed using aliases (csc will bork). Primary combine safety is now
112           computed during UnicodeData.txt parse.
113           Maximum NFKD length was 18, not 4 (U+FDFA).
114
115 2005-08-02  Atsushi Enomoto  <atsushi@ximian.com>
116
117         * managed-collation.patch : added Normalization support.
118         * managed-collation-icall.patch : added, including normalization stuff.
119
120           BTW when will collation code checked in?
121
122 2005-08-02  Atsushi Enomoto  <atsushi@ximian.com>
123
124         * create-normalization-source.cs : Unified three normalization source
125           generators, to compute IsUnsafe flag. Fixed helperIndex array type
126           in C header output.
127         * create-char-mapping-source.cs,
128           create-combining-class-source.cs : thus removed.
129         * Makefile : thus modified for the above integration.
130         * NormalizationTableUtil.cs : Extended to contain IsUnsafe flag.
131         * Normalization.cs : Several fixes to make Normalize() actually work.
132
133 2005-07-29  Atsushi Enomoto  <atsushi@ximian.com>
134
135         * create-normalization-source.cs,
136           Normalization.cs,
137           create-char-mapping-source.cs,
138           create-combining-class-source.cs,
139           Makefile : converted managed array to pointers (like collation stuff).
140
141 2005-07-29  Atsushi Enomoto  <atsushi@ximian.com>
142
143         * NormalizationTableUtil.cs : further table range optimization.
144         * create-normalization-source.cs,
145           create-char-mapping-source.cs,
146           create-combining-class-source.cs : added C header output support.
147
148 2005-07-29  Atsushi Enomoto  <atsushi@ximian.com>
149
150         * create-normalization-source.cs, Normalization.cs :
151           Now property size is < 256, so directly embed value in "props" array.
152           Add QuickCheck(c,checkType) and remove IsNFD/C/KD/KC and delegates.
153
154 2005-07-29  Atsushi Enomoto  <atsushi@ximian.com>
155
156         * create-combining-class-source.cs,
157           create-char-mapping-source.cs,
158           create-normalization-source.cs,
159           NormalizationTableUtil.cs,
160           Normalization.cs : String.Normalize() does not handle surrogate
161           characters. mapping information in DerivedNormalizationProps.txt
162           are not used in the code (those from UnicodeData.txt is used).
163           Hangul syllables are computed instead of embedded in the tables.
164         * managed-collation.patch : removed IntPtrStream and Makefile patches.
165
166 2005-07-29  Atsushi Enomoto  <atsushi@ximian.com>
167
168         * MSCompatUnicodeTable.cs : IsSortable() was broken.
169
170 2005-07-29  Atsushi Enomoto  <atsushi@ximian.com>
171
172         * MSCompatUnicodeTable.cs : added helper for CompareInfo.IsSortable().
173
174 2005-07-28  Atsushi Enomoto  <atsushi@ximian.com>
175
176         * create-tailoring.cfg : added for convenience of contraction check.
177
178 2005-07-28  Atsushi Enomoto  <atsushi@ximian.com>
179
180         * create-normalization-source.cs,
181           SimpleCollator.cs,
182           SortKeyBuffer.cs,
183           create-mscompat-collation-table.cs,
184           MSCompatUnicodeTableUtil.cs,
185           SortKey.cs,
186           create-collation-element-table.cs,
187           MSCompatUnicodeTable.cs,
188           CodePointIndexer.cs,
189           create-combining-class-source.cs : added copyright lines.
190
191 2005-07-28  Atsushi Enomoto  <atsushi@ximian.com>
192
193           MSCompatUnicodeTable.cs : removed extraneous definition.
194
195 2005-07-28  Atsushi Enomoto  <atsushi@ximian.com>
196
197         * create-mscompat-collation-table.cs
198           MSCompatUnicodeTable.cs : full C header support, finally.
199
200 2005-07-28  Atsushi Enomoto  <atsushi@ximian.com>
201
202         * Normalization.cs,
203           NormalizationTableUtil.cs,
204           create-char-mapping-source.cs : more aggressive data compression.
205           It now ignores characters that are >= U+10000.
206
207 2005-07-28  Atsushi Enomoto  <atsushi@ximian.com>
208
209         * Makefile,
210           Normalization.template,
211           Normalization.cs : renamed existing file.
212
213 2005-07-28  Atsushi Enomoto  <atsushi@ximian.com>
214
215         * NormalizationTableUtil.cs,
216           Normalization.template,
217           create-combining-class-source.cs : GetCombiningClass is now 
218           implemented as indexer based array.
219         * Makefile : renamed output filename.
220         * create-mscompat-collation-table.cs : removed comments that does not
221           make sense now.
222         * create-tailoring.cs : use utf-8 output (and fixed filename).
223
224 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
225
226         * create-mscompat-collation-table.cs : hacked safer IPA extensions.
227         * Collation-notes.txt : status of sortkey table.
228
229 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
230
231         * create-mscompat-collation-table.cs : some Greek mapping fix.
232
233 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
234
235         * create-mscompat-collation-table.cs : diacritical weight is not
236           treated correctly when they are picked from letter names, as flags.
237
238 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
239
240         * create-mscompat-collation-table.cs : fixed culture-dependent 
241           nonspacing mark weight.
242
243 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
244
245         * create-mscompat-collation-table.cs : some Hebrew case letter fixes.
246           Some diacritical fixes on symbols.
247
248 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
249
250         * create-mscompat-collation-table.cs : Fixed level 3 weight of
251           Arabic presentation forms.
252
253 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
254
255         * create-mscompat-collation-table.cs : Fixed some diacritical weight
256           of Arabic presentation forms.
257
258 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
259
260         * SimpleCollator.cs : more status updates. It's almost complete,
261           except for sortkey values.
262
263 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
264
265         * SimpleCollator.cs : similar optimization also for LastIndexOf().
266
267 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
268
269         * SimpleCollator.cs : the previous patch was missing IgnoreNonSpace
270           case.
271
272 2005-07-27  Atsushi Enomoto  <atsushi@ximian.com>
273
274         * SimpleCollator.cs : reduced extra sortkey value computation in
275           MatchesForward(). It makes IndexOf() roughly 30% faster.
276
277 2005-07-26  Atsushi Enomoto  <atsushi@ximian.com>
278
279         * SortKey.cs : GetHashCode() returns a value based on its byte data.
280           Removed unused code.
281
282 2005-07-26  Atsushi Enomoto  <atsushi@ximian.com>
283
284         * SimpleCollator.cs : consider extractions in invariant culture.
285
286 2005-07-26  Atsushi Enomoto  <atsushi@ximian.com>
287
288         * SimpleCollator.cs : (unsafeFlags) be compact ;-)
289
290 2005-07-26  Atsushi Enomoto  <atsushi@ximian.com>
291
292         * SimpleCollator.cs : When the tail of the target does not match more
293           than 3 times, then IsSuffix() will never be true (3 is the max
294           length of an expansion; \uFB03 -> ffi). It brings significant
295           performance boost when "source" string is very long.
296         * MSCompatUnicodeTable.cs : added MaxExpansionLength constant.
297           Reordered code lines.
298
299 2005-07-26  Atsushi Enomoto  <atsushi@ximian.com>
300
301         * Collation-notes.txt : updated implementation status.
302
303 2005-07-26  Atsushi Enomoto  <atsushi@ximian.com>
304
305         * SimpleCollator.cs : Implemented quick codepoint comparison in
306           Compare(). Comparison became 125x faster.
307         * mono-tailoring-source.txt : added tiny comment.
308
309 2005-07-26  Atsushi Enomoto  <atsushi@ximian.com>
310
311         * mono-tailoring-source.txt : Added all single sortkey remapping to
312           all cultures (still need to fill contractions and annotate possible
313           buggy mapping referencing to CLDR).
314         * SimpleCollator.cs : removed unused code.
315         * MSCompatUnicodeTable.cs : tiny cast removal.
316
317 2005-07-25  Atsushi Enomoto  <atsushi@ximian.com>
318
319         * SimpleCollator.cs
320           create-mscompat-collation-table.cs
321           MSCompatUnicodeTableUtil.cs
322           MSCompatUnicodeTable.cs : Now CJK mapping data is stored as byte
323           arrays. Thus SimpleCollator does not need to use bitwise and shift
324           operations to get sortkey value and they could be managed resources.
325
326 2005-07-25  Atsushi Enomoto  <atsushi@ximian.com>
327
328         * create-mscompat-collation-table.cs,
329           MSCompatUnicodeTable.cs,
330           MSCompatUnicodeTableUtil.cs : From the result of sortkey comparison
331           between None and IgnoreWidth, width compat table could be computed
332           in somewhat simple way. So removed that table and all related code.
333           Increased the collation resource version.
334
335 2005-07-25  Atsushi Enomoto  <atsushi@ximian.com>
336
337         * create-mscompat-collation-table.cs : Added C header output support.
338
339 2005-07-25  Atsushi Enomoto  <atsushi@ximian.com>
340
341         * create-mscompat-collation-table.cs : FillLetterNFKD() could also be
342           applied to Cyrillic letters. Saved some of them.
343
344 2005-07-24  Atsushi Enomoto  <atsushi@ximian.com>
345
346         * MSCompatUnicodeTable.cs : oh, ok, so we already have 
347           GetManifestResourceInternal() ;-)
348         * managed-collation.patch : in Assembly.cs made that method internal.
349
350 2005-07-24  Atsushi Enomoto  <atsushi@ximian.com>
351
352         * MSCompatUnicodeTable.cs : the pointer based icall code could be
353           also applicable for USE_MANAGED_RESOURCE mode.
354
355 2005-07-23  Atsushi Enomoto  <atsushi@ximian.com>
356
357         * MSCompatUnicodeTable.cs : added icall support code (not enabled
358           unless the first line is commented out).
359
360 2005-07-22  Atsushi Enomoto  <atsushi@ximian.com>
361
362         * create-mscompat-collation-table.cs,
363           MSCompatUnicodeTableUtil.cs,
364           MSCompatUnicodeTable.cs : Added resource version output (and ignore
365           in case of version mismatch). Removed obsolete, commented out code.
366
367 2005-07-22  Atsushi Enomoto  <atsushi@ximian.com>
368
369         * SimpleCollator.cs,
370           MSCompatUnicodeTable.cs,
371           create-mscompat-collation-table.cs : Now they use unmanaged pointers
372           instead of managed arrays.
373         * managed-collation.patch : Now it contains patch for IntPtrStream.cs
374           and Assembly.cs as well.
375
376 2005-07-22  Atsushi Enomoto  <atsushi@ximian.com>
377
378         * MSCompatUnicodeTable.cs,
379           SimpleCollator.cs : Moved tailoring support classes to 
380           MSCompatUnicodeTable.cs and drawn out from SimpleCollator.
381           Now that cjk and tailoring support are filled inside 
382           MSCompatUnicodeTable, no managed array is exposed.
383
384 2005-07-22  Atsushi Enomoto  <atsushi@ximian.com>
385
386         * create-mscompat-collation-table.cs,
387           SimpleCollator.cs,
388           MSCompatUnicodeTable.cs : Now it's not exposing collation table
389           internals as managed arrays (to switch to unmanaged pointers).
390
391 2005-07-22  Atsushi Enomoto  <atsushi@ximian.com>
392
393         * create-mscompat-collation-table.cs : tiny nonspacing mark fix.
394
395 2005-07-21  Atsushi Enomoto  <atsushi@ximian.com>
396
397         * create-mscompat-collation-table.cs : Fixed most of Greek mappings.
398         * MSCompatUnicodeTable.cs : don't lock string.
399
400 2005-07-21  Atsushi Enomoto  <atsushi@ximian.com>
401
402         * create-mscompat-collation-table.cs : More Cyrillic diacritical fixes.
403
404 2005-07-21  Atsushi Enomoto  <atsushi@ximian.com>
405
406         * create-mscompat-collation-table.cs : More Latin diacritical fixes.
407
408 2005-07-21  Atsushi Enomoto  <atsushi@ximian.com>
409
410         * create-mscompat-collation-table.cs : There were still missing
411           math symbol mappings. Added several hacky diacritical weight for
412           Latin characters.
413
414 2005-07-21  Atsushi Enomoto  <atsushi@ximian.com>
415
416         * create-mscompat-collation-table.cs : fixed a few diacritical weight
417           on Cyrillic characters. Fixed ParseTailoringSource() to handle
418           non-heading escape sequence (\uXXXX) as expected.
419
420 2005-07-21  Atsushi Enomoto  <atsushi@ximian.com>
421
422         * create-mscompat-collation-table.cs,
423           MSCompatUnicodeTableUtil.cs,
424           MSCompatUnicodeTable.cs : added more aggressive index limits for
425           table optimization at data size, in cost of speed.
426
427 2005-07-20  Atsushi Enomoto  <atsushi@ximian.com>
428
429         * create-mscompat-collation-table.cs : fixed Arabic thirtial weight.
430
431 2005-07-20  Atsushi Enomoto  <atsushi@ximian.com>
432
433         * create-mscompat-collation-table.cs : Mapping for hyphens and 
434           punctuation are kinda finished. Rewrote batch mapping method to
435           collect all NFKD. Required modification on mapping is done.
436
437 2005-07-20  Atsushi Enomoto  <atsushi@ximian.com>
438
439         * create-mscompat-collation-table.cs : minor mapping fixes on accent 
440           marks and punctuations.
441
442 2005-07-20  Atsushi Enomoto  <atsushi@ximian.com>
443
444         * create-mscompat-collation-table.cs : Fixed some MathSymbol mapping
445           and Box drawing mapping.
446
447 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
448
449         * create-mscompat-collation-table.cs : Fixed almost all numbers.
450
451 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
452
453         * create-mscompat-collation-table.cs : Symbol mappings are almost done.
454           Removed hack that gave dummy mappings to blank symbols.
455
456 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
457
458         * create-mscompat-collation-table.cs : more fix on arrows. Fix on box
459           drawings. Some code refactoring to eliminate hack.
460
461 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
462
463         * create-mscompat-collation-table.cs : Fixed some secondary weight
464           in Devanagari and arrows.
465
466 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
467
468         * create-mscompat-collation-table.cs : a set of tiny mapping fixes.
469
470 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
471
472         * create-mscompat-collation-table.cs : some diacritical fixes for
473           Latin. Added batch mapping method that considers computed
474           diacritical weight (for numbers).
475
476 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
477
478         * managed-collation.patch : forgot to add System.String patch.
479
480 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
481
482         * MSCompatUnicodeTable.cs : added resource existence check (required
483           for mscorlib transient time from the one without resources to the
484           one with resources.
485
486 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
487
488         * create-mscompat-collation-table.cs : fixed punctuations and hyphen
489           (shift) primary weight.
490
491 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
492
493         * create-mscompat-collation-table.cs : more nonspacing mark fixes.
494           Some non-basic Cyrillic diacritical weight fixes.
495
496 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
497
498         * create-mscompat-collation-table.cs : some Gurmukhi fixes on level 1 
499           and level 3. Tiny Hangul weight fixes.
500         * MSCompatUnicodeTable.cs : U+30F5 and U+30F6 are small Japanese.
501
502 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
503
504         * create-mscompat-collation-table.cs : some normal characters who have
505           "narrow" NFKD mapping are regarded as "wide" and thus level 3 weight
506           values were different.  Handle U+30FB as category A.
507         * MSCompatUnicodeTable.cs : U+30FB does not have special weight.
508
509 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
510
511         * create-mscompat-collation-table.cs : more diacritical weight fixes.
512           Removed some unused code.
513
514 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
515
516         * create-mscompat-collation-table.cs : Fixed some Thai and Arabic
517           level 2 weight.
518
519 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
520
521         * create-mscompat-collation-table.cs : Fixed Syriac nonspacing marks.
522
523 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
524
525         * create-mscompat-collation-table.cs : Fixed nonspacing marks in
526           Malayalam, Thai and Lao. Removed extraneous hack.
527
528 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
529
530         * SimpleCollator.cs : rewrote LastIndexOf() to handle source extenders.
531           Some refactoring on IndexOf() code. Removed unused Matches().
532         * Collation-notes.txt : some methods needed to be reimplemented, so
533           rewrote the description.
534
535 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
536
537         * SimpleCollator.cs : rewrote IsSuffix() to use CompareInternal().
538           Thus supported extenders in IsSuffix().
539
540 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
541
542         * SimpleCollator.cs : more IsSuffix() simplification, but it will be
543           stopped here since it cannot handle extenders (implementing new
544           approach one).
545
546 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
547
548         * SimpleCollator.cs : simplified IsSuffix() code.
549
550 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
551
552         * SimpleCollator.cs : Fixed IndexOf() and LasIndexOf() to search the
553           entire replacement string if char target was an expansion.
554           IsSuffix() was using a method for IsPrefix() which was incorrect.
555           Removed old IsPrefix() code.
556
557 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
558
559         * SimpleCollator.cs : IndexOf() was incorrectly sharing the same
560           byte[] field in different areas of code. Now extenders in both
561           source and target really work in IndexOf().
562
563 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
564
565         * create-mscompat-collation-table.cs : fixed U+FF9F diacritical weight.
566         * SimpleCollator.cs : handle U+FF9E and U+FF9F as extenders.
567
568 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
569
570         * SimpleCollator.cs : Now FilterExtender() handles all extender
571           support. IndexOf() and LastIndexOf() now supports extenders.
572           IndexOf() and LastIndexOf() did not proceed contraction source
573           length as expected. Tiny refactoring on private IsPrefix() to take
574           stringSort argument.
575
576 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
577
578         * SimpleCollator.cs : when restoring from expansion, go back to the
579           top of the loop (to avoid index out of range).
580           Now IsPrefix() is implemented to reuse Compare() and thus it now
581           supports extender as well.
582         * Collation-notes.txt : status update. Deleted optimization part in
583           status section (it is duplicate).
584
585 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
586
587         * SimpleCollator.cs : some code reordering.
588         * create-mscompat-collation-table.cs : it was still missing U+3094.
589
590 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
591
592         * SimpleCollator.cs : Compare() now supports extender (e.g. U+39FC).
593
594 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
595
596         * SimpleCollator.cs : In GetSortKey(), don't update previousChar when
597           it is not primary (e.g. don't "extend" diacritical mark).
598
599 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
600
601         * managed-collation.patch : CompareInfo.Compare() should consider
602           the possibilities that non-empty string might be actually empty
603           in culture-sensitive context.
604
605 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
606
607         * SimpleCollator.cs : IndexOf() and LastIndexOf() returns start when
608           target is "empty" (in culture-sensitive context).
609
610 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
611
612         * SimpleCollator.cs : In IndexOf() and LastIndexOf(), skip ignorable
613           characters in target string.
614
615 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
616
617         * SimpleCollator.cs : When IgnoreWidth is specified, all Kana
618           characters are regarded as half-width.
619           Even though IgnoreWidth is specified, it should not ignore case.
620           For special weight comparison, the default values (E4) are bigger
621           than non-default values.
622         * SortKeyBuffer.cs : It should save LCID and original string.
623         * create-mscompat-collation-table.cs : For Japanese half-width kana,
624           it should not be counted in widthCompat map since IgnoreWidth does
625           not really ignore those differences.
626
627 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
628
629         * create-mscompat-collation-table.cs : Fixed missing Japanese bits.
630
631 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
632
633         * create-mscompat-collation-table.cs :
634           tiny diacritical weight fix for U+20D0-U+20E1.
635
636 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
637
638         * create-mscompat-collation-table.cs : ja CJK ideograph got completed.
639
640 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
641
642         * create-mscompat-collation-table.cs : Fixed CJK custom Japanese
643           mapping. It (maybe as well as other CJK tables) mixes NFKD. For
644           Japanese, modified NFKD table (because of Windows lame design).
645
646 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
647
648         * Makefile : added MONO_USE_MANAGED_COLLATION=no almost everywhere.
649         * MSCompatUnicodeTable.cs : FillCJK() was not invoked. Now it is
650           invoked at any time it is required.
651         * SimpleCollator.cs : call FillCJK() above in .ctor().
652         * MSCompatUnicodeTableUtil.cs : CJK range was wider.
653         * create-mscompat-collation-table.cs : CJK binary was missing the
654           length. CJK remapping is being moved to ModifyUnidata().
655           For cjk-ja mapping, we have to consider compat characters to be
656           added to the map, besides the raw UCA table.
657
658 2005-07-12  Atsushi Enomoto  <atsushi@ximian.com>
659
660         * SortKeyBuffer.cs : Fixed shift level computation to match w/ Windows.
661
662 2005-07-12  Atsushi Enomoto  <atsushi@ximian.com>
663
664         * SimpleCollator.cs : fixed LastIndexOf() to handle _target's_ 
665           contraction as expected. Fixed Compare() to save s2's contraction
666           as expected.
667         * TestDriver.cs :added LastIndexOf() tester w/ indexes.
668
669 2005-07-12  Atsushi Enomoto  <atsushi@ximian.com>
670
671         * managed-collation.patch : Fixed IsPrefix() and IsSuffix(). They
672           incorrectly use Compare().
673         * TestDriver.cs : more moved to nunit tests.
674
675 2005-07-12  Atsushi Enomoto  <atsushi@ximian.com>
676
677         * SimpleCollator.cs : several fixes on Compare().
678           - Ignorable characters are skippted at the top of the loop. 
679           - IgnoreNonSpace is checked to avoid extraneous level 2 comparison.
680           - In such case that s1 index  is increased while s2 contraction is
681             replaced, s1 is inconsistently proceeded (bug).
682           - IsIgnorable() now also checks IgnoreNonSpace.
683           - Fixed FilterOptions() that does not work for IgnoreWidth at all.
684         * TestDriver.cs : now some are moved to nunit tests.
685         * Collation-notes.txt : minor todo update.
686
687 2005-07-11  Atsushi Enomoto  <atsushi@ximian.com>
688
689         * SimpleCollator.cs : Compare() was ignoring such case that both
690           entire strings have '-' to be compared.
691         * Collation-notes.txt : more status updates.
692         * TestDriver.cs : added '-' use cases.
693
694 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
695
696         * SimpleCollator.cs : to be same as other buggy part, it now handles
697           U+3005, U+3031 and U+3032 as buggy as Windows. It just repeats
698           previous character.
699           Fixed GetSortKey(): if the repeater is U+3005, second weight is 5.
700         * create-mscompat-collation-table.cs : dummy values for extenders.
701
702 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
703
704         * SimpleCollator.cs : Special weight fixes on GetSortKey(). Dash type
705           should be computed from ExtenderType, and voice mark weight should
706           be considered.
707         * MSCompatUnicodeTable.cs : added tiny comment.
708
709 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
710
711         * SortKey.cs : It borked when MONO_USE_MANAGED_COLLATION is not yes.
712         * SimpleCollator.cs : support for extender (U+309D etc.).
713
714 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
715
716         * create-mscompat-collation-table.cs : some punct/symbols fix.
717         * managed-collation.patch : new (and temporary) file to support
718           managed collation in mscorlib.
719         * README : described how to use managed collation.
720
721 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
722
723         * create-mscompat-collation-table.cs : Further Cyrillic fixes. Handle
724           U+482-4C8 (though needs diacritical fixes).
725         * MSCompatUnicodeTable.cs : tiny comment for alternative impl.
726
727 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
728
729         * create-mscompat-collation-table.cs : Reimplemented Cyrillic weight
730           computation code, since it looks like the same way as Latin letters
731           have. Thus removed all other approach (UCA, by letter name).
732
733 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
734
735         * create-mscompat-collation-table.cs : diacritical fix for "double-
736           struck". Syriac nonspacing fixes.
737
738 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
739
740         * create-mscompat-collation-table.cs : more math symbol weight fixes.
741
742 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
743
744         * create-mscompat-collation-table.cs : fixed Hebrew character sortkeys.
745
746 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
747
748         * create-mscompat-collation-table.cs : math symbols U+25A0-U+2600 are
749           implemented (no stub). Some other fixes on category 8-A.
750
751 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
752
753         * create-mscompat-collation-table.cs : some minor fixes on Arabic,
754           Korean and Japanese sortkey weights.
755
756 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
757
758         * create-mscompat-collation-table.cs : More diacritical fixes.
759           Georgian characters do not have level 2 weights but level 3.
760
761 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
762
763         * create-mscompat-collation-table.cs : Roman numeral characters
764           have diacritical weight. quick hack for control signs (U+2400..)
765           and box drawings.
766
767 2005-07-06  Atsushi Enomoto  <atsushi@ximian.com>
768
769         * create-mscompat-collation-table.cs : improving Latin mappings.
770           Setting non-ASCII Latin characters' primary weight between those
771           ASCII characters, and setting diacritical weight (hacky).
772         * MSCompatUnicodeTable.cs :
773           Kanatype check: fixed (voice marks) and improved (comparison order).
774
775 2005-07-06  Atsushi Enomoto  <atsushi@ximian.com>
776
777         * create-mscompat-collation-table.cs : more diacritical fixes.
778           primary weight fixes on punctuations in category 07.
779
780 2005-07-06  Atsushi Enomoto  <atsushi@ximian.com>
781
782         * create-mscompat-collation-table.cs : several diacritical fixes.
783         * TestDriver.cs : sortkey dumper should use StringSort.
784
785 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
786
787         * SimpleCollator.cs : fixed incorrect indexer setup. Optimized
788           GetContraction() call a bit.
789
790 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
791
792         * create-mscompat-collation-table.cs : fixed incorrect level 2
793           output type.
794         * MSCompatUnicodeTable.cs : remove debug line.
795
796 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
797
798         * MSCompatUnicodeTableUtil.cs,
799           MSCompatUnicodeTable.cs,
800           CodePointIndexer.cs,
801           create-mscompat-collation-table.cs : made some members internal and
802           accessible from other classes. Many indexes could be 0 by default.
803         * SimpleCollator.cs : optimizations. avoid method call.
804
805 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
806
807         * Collation-notes.txt : more updates.
808         * SimpleCollator.cs : Added quick check for Ordinal comparison.
809           Fixed special weight comparison. It cannot be customizable in the
810           implementation (and it won't be harmful).
811         * mono-tailoring-source.txt : thus updated comment.
812
813 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
814
815         * SimpleCollator.cs : Compare() was missing French sort support.
816         * TestDriver.cs : added example case.
817
818 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
819
820         * Collation-notes.txt : updated status. Eliminated descriptions on
821           "iterator" (I avoided it for performance concern). Fixed misc.
822           incorrect descriptions.
823
824 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
825
826         * Collator.cs : Now that SimpleCollator became feature complete, it is
827           not useful anymore.
828
829 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
830
831         * SimpleCollator.cs : implemented decent Compare() that immediately
832           stops at first primary difference.
833
834 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
835
836         * SimpleCollator.cs : indexers might return -1.
837
838 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
839
840         * SimpleCollator.cs : IsPrefix() and IsSuffix() optimization code was
841           buggy (length check for source was missing).
842
843 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
844
845         * create-mscompat-collation-table.cs : Fixed tailoring table output
846           to be in correct and countable order. Now if tailoring alias was not
847           found, just stop the build.
848         * MSCompatUnicodeTable.cs : several build fixes. Now it works to read
849           assembly resources.
850         * mono-tailoring-source.txt : commented out CJK aliases that miss
851           target.
852         * Makefile : needed further filename fixes.
853
854 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
855
856         * MSCompatUnicodeTable.cs : renamed from MSCompatUnicodeTable.template
857           (now it is working as a standalone file).
858         * Makefile : renamed generated file as MSCompatUnicodeTableGenerated.cs
859           (the generator now creates both binary resources and C# source).
860
861 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
862
863         * create-mscompat-collation-table.cs : Now it generates binary
864           resources (to parent directory).
865         * MSCompatUnicodeTable.template : added conditional code that fills
866           collation tables from manifest resources.
867         * Makefile : remove collation table binaries as well on "make clean".
868           Removed extraneous dependency.
869
870 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
871
872         * MSCompatUnicodeTable.template,
873           SimpleCollator.cs : removed extraneous GetExpansion().
874
875 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
876
877         * SimpleCollator.cs : IsSuffix() also supports contractions.
878         * TestDriver.cs : IsSuffix() example contraction cases.
879
880 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
881
882         * SimpleCollator.cs : reverted IsSuffix() to return bool (to match w/
883           what current IsPrefix() does). For expansion of target, IsPrefix()
884           should check the no-match case that expansion is longer than input.
885           Some refactory on IsPrefix().
886           Added GetContractionTal() for IsSuffix() (not used yet).
887
888 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
889
890         * TestDriver.cs : added IsPrefix() expansion cases.
891         * SimpleCollator.cs : IsPrefix() now supports contractions (with much
892           of complexity), and it now returns bool again.
893           IndexOf() for replacement should make use of IndexOfPrimitiveChar()
894           since expansions won't be expanded recursively.
895
896 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
897
898         * SimpleCollator.cs : commonized character comparison in IsPrefix()
899           and IsSuffix(). csc compile fix.
900         * CompareInfoImpl.cs : deleted.
901
902 2005-06-30  Atsushi Enomoto  <atsushi@ximian.com>
903
904         * TestDriver.cs : added SimpleCollator.ctor() sanity check.
905           Added replacement contraction example.
906         * SimpleCollator.cs : Now IndexOf() and LastIndexOf() support 
907           contraction in source string. Extracted matching code to Matches().
908           Replacement contraction was including extraneous '\x0'.
909
910 2005-06-30  Atsushi Enomoto  <atsushi@ximian.com>
911
912         * Collation-notes.txt : updated status.
913         * CollationDataStructures.txt : tiny fixes.
914         * SimpleCollator.cs :
915           Renamed alias Util to UUtil (MS sys.enterprisesvc has sucky global
916           namespace Util and csc borked).
917           GetContraction was incorrectly returning first item.
918           Private IsPrefix() now returns int (but it might not be in real use).
919           Extracted simple char comparison to CompareCharSimple().
920           IndexOf() and LastIndexOf() now fully handle contractions (both
921           binary key and string replacement) in "target" (for "s" not yet).
922         * TestDriver.cs : be more verbose.
923         * mono-tailoring-source.txt : added comment.
924         * MSCompatUnicodeTable.template :
925           Renamed alias Util to UUtil (MS sys.enterprisesvc has sucky global
926
927 2005-06-30  Atsushi Enomoto  <atsushi@ximian.com>
928
929         * create-mscompat-collation-table.cs : compute COMBINING blah marks as
930           well as those characters WITH blah.
931         * TestDriver.cs : added combining sortkey cases.
932
933 2005-06-30  Atsushi Enomoto  <atsushi@ximian.com>
934
935         * mono-tailoring-source.txt : fixed description on '*' in sortkeys.
936         * SimpleCollator.cs : Now it fully uses tailoring info. Fixed
937           contraction search that worked only when string is contraction.
938           Removed commented code. Minor refactoring.
939         * TestDriver.cs : added example that uses "ZS" in Hungarian sorting.
940
941 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
942
943         * create-mscompat-collation-table.cs,
944         * mono-tailoring-source.txt : removed extraneous level 4 sortkey
945           which cannot be supported.
946         * SimpleCollator.cs : added GetContraction() and used in some places.
947           Now CompareOptions is set only once. Reordered some code (e.g.
948           ignorable check -> get compat char -> compare).
949
950 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
951
952         * SimpleCollator.cs : sort tailoring tables before actual usage.
953           Support diacritical remappings (it is customized collation rule
954           which does not exist in UCA).
955
956 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
957
958         * SimpleCollator.cs : build culture specific tailoring table from
959           TailoringInfo and unified data array.
960         * create-mscompat-collation-table.cs : Added null termination to
961           sortkey map tailorings (mostly to save my eyes).
962         * MSCompatUnicodeTable.template : added public TailoringValues.
963
964 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
965
966         * SortKeyBuffer.cs : handle special weight (category 06) characters.
967         * Collation-notes.txt : Updated description on special weight (it was
968           incorrect).
969         * TestDriver.cs : added special weight cases.
970
971 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
972
973         * MSCompatUnicodeTable.template : added GetTailoringInfo().
974         * SimpleCollator.cs : Now tailoring information is acquired and used.
975           (FrenchSort is supported but Compare() won't work expectedly since
976            the table is still incomplete for those diacritical marks).
977         * SortKeyBuffer.cs : On reversing diacritical weights, it should
978           ignore zeros. Reset() should reset frenchSorted flag.
979
980 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
981
982         * create-mscompat-collation-table.cs : Further fixes on Jamo,
983           diacritical weights by character name, and *Numbers primary weights.
984
985 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
986
987         * create-mscompat-collation-table.cs : More fix on Devanagari,
988           Gujarati, Oliya, Tamil and Lao sortkeys.
989
990 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
991
992         * create-mscompat-collation-table.cs : Fixed Georgian, Thai, Gurmukhi
993           sortkey values.
994
995 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
996
997         * create-mscompat-collation-table.cs : Fixed Thai character primary
998           and secondary values. Fixed Thaana letters. Added more LAMESPEC
999           CJK compat. Fixed some circled CJK secondary weight.
1000           Hacked some nonspacing mark sortkey value adjustment.
1001
1002 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
1003
1004         * create-mscompat-collation-table.cs : CP932.TXT was not parsed as
1005           expected. JIS ordering was incorrect. OtherNumbers that represents
1006           10 or more values were incorrectly computed the offset. Some Hangul
1007           compat characters has different offset.
1008
1009 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
1010
1011         * create-mscompat-collation-table.cs : Fixed 0x8 category characters.
1012           Added hack for need-to-be-fixed characters to fall into 0xA category.
1013         * create-collation-element-table.cs : previous checkin seem failed :(
1014         * README: updated a bit.
1015
1016 2005-06-24  Atsushi Enomoto  <atsushi@ximian.com>
1017
1018         * CodePointIndexer.cs :
1019           removed extraneous switch (I could use empty array for that need).
1020         * CollationElementTableUtil.cs : primary weight type became ushort.
1021         * create-collation-element-table.cs : several bugfixes.
1022           collElem should be int. It was skipping most of entries because of
1023           incorrect string tokenization.
1024
1025 2005-06-23  Atsushi Enomoto  <atsushi@ximian.com>
1026
1027         * create-mscompat-collation-table.cs : handle some Jamo NKFD.
1028
1029 2005-06-23  Atsushi Enomoto  <atsushi@ximian.com>
1030
1031         * SimpleCollator.cs : forgot to commit in the last checkin.
1032         * create-mscompat-collation-table.cs : fixed arabic shift weight chars.
1033         * TestDriver.cs : switch table dumper and collator testing.
1034         * SortKey.cs : for now comment out internal indexes (not in use).
1035
1036 2005-06-23  Atsushi Enomoto  <atsushi@ximian.com>
1037
1038         * MSCompatUnicodeTable.template,
1039           SimpleCollator.cs : support for culture dependent CJK table.
1040
1041 2005-06-23  Atsushi Enomoto  <atsushi@ximian.com>
1042
1043         * create-mscompat-collation-table.cs,
1044           MSCompatUnicodeTableUtil.cs : make CJK table more compact.
1045
1046 2005-06-22  Atsushi Enomoto  <atsushi@ximian.com>
1047
1048         * SimpleCollator.cs : Fixed stupid index search when start != 0.
1049
1050 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1051
1052         * SimpleCollator.cs : fixed my misunderstanding on LastIndexOf(). It
1053           now starts from "start" and proceeds backward by "length".
1054         * TestDriver.cs : fix warning.
1055
1056 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1057
1058         * TestDriver.cs : more tests.
1059         * SimpleCollator.cs : LastIndexOf() is not setting search length
1060           on iteration. Quick workaround fro String.LastIndexOf() bug (maybe).
1061
1062 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1063
1064         * create-normalization-source.cs : output propValue as uint.
1065
1066 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1067
1068         * SortKey.cs : Now it is System.Globalization.SortKey.
1069           To replace existing implementation, it now requires lcid and 
1070           CompareOptions. Added required members.
1071         * SortKeyBuffer.cs : thus .ctor() requires LCID.
1072         * SimpleCollator.cs : made required changes above.
1073
1074 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1075
1076         * CodePointIndexer.cs : added CompressArray(). Now it requires two more
1077           parameters for default index and codepoint.
1078         * CollationElementTableUtil.cs,
1079           NormalizationTableUtil.cs : required changes wrt above change.
1080         * MSCompatUnicodeTableUtil.cs : added for several codepoint indexers.
1081         * MSCompatUnicodeTable.template : Now it uses codepoint indexer.
1082         * create-mscompat-collation-table.cs : Now it outputs compressed array.
1083         * Makefile : now collation requires MSCompatUnicodeTableUtil.cs
1084
1085 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1086
1087         * SimpleCollator.cs :
1088           Implemented IsSuffix() and LastIndexOf().
1089           Several fixes on index > 0 cases.
1090         * TestDriver.cs : sample IsSuffix() and LastIndexOf() usage and more.
1091
1092 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1093
1094         * Collation-notes.txt : updated (status, impl. classes).
1095         * MSCompatUnicodeTable.cs : Korean Jamo are not really expansions.
1096
1097 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
1098
1099         * SimpleCollator.cs : implemented IndexOf(string,string,CompareOptions)
1100           and IsPrefix(). Tiny code refactory.
1101         * TestDriver.cs : sample IsPrefix() and IndexOf() usage.
1102         * MSCompatUnicodeTable.cs : tiny refactory for CodePointIndexer use.
1103
1104 2005-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1105
1106         * SimpleCollator.cs :
1107           IndexOf(string, char, CompareOptions) implementation.
1108         * TestDriver.cs : sample IndexOf() usage.
1109
1110 2005-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1111
1112         * create-mscompat-collation-table.cs : was missing most important
1113           kind of blocks - equivalent expansions (e.g. invariant mappings).
1114           More readable mappings.
1115
1116 2005-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1117
1118         * mono-tailoring-source.txt : new file. It describes tailoring
1119           information. Basically examined under .NET 1.x.
1120         * create-mscompat-collation-table.cs : consume the file above.
1121         * MSCompatUnicodeTable.template : now tailorings is not a stub.
1122         * CollationDataStructures.txt : minor fixes.
1123         * SortKeyBuffer.cs,
1124           SimpleCollator.cs : added FrenchSort support.
1125         * Collation-notes.txt : added description on Latin primary weights.
1126         * ldml-limited.rng : added note.
1127         * create-tailorings.cs : added note. more serialization (but won't be 
1128           used anyways).
1129
1130 2005-06-17  Atsushi Enomoto  <atsushi@ximian.com>
1131
1132         * SortKeyBuffer.cs : non-primary character is added to previous 
1133           diacritical weight.
1134         * TestDriver.cs : added example case of above.
1135
1136 2005-06-17  Atsushi Enomoto  <atsushi@ximian.com>
1137
1138         * SimpleCollator.cs : IgnoreSymbols support.
1139         * TestDriver.cs : compilation fix. IgnoreSymbols example.
1140         * create-mscompat-collation-table.cs : more Hangul fixes.
1141
1142 2005-06-17  Atsushi Enomoto  <atsushi@ximian.com>
1143
1144         * create-mscompat-collation-table.cs : more Hangul fixes.
1145         * SortKey.cs : it will replace sys.globalization.SortKey. It has
1146           some internal members.
1147         * SortKeyBuffer.cs : now it uses SortKey instead of byte[].
1148         * SimpleCollator.cs : CompareOptions support. However I don't think
1149           it will be developed anymore since SortKey never enables IndexOf().
1150         * TestDriver.cs : a few CompareOptions cases.
1151
1152 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
1153
1154         * SimpleCollator.cs : simple collator implementation that just will
1155           use GetSortKey() for all its basis.
1156         * TestDriver.cs : sample code that uses this collator set.
1157         * MSCompatUnicodeTable.template : removed test driver from here.
1158
1159 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
1160
1161         * create-mscompat-collation-table.cs : Hangul fixes.
1162           Now less than 300 characters that does not have sortkey weights.
1163         * MSCompatUnicodeTable.template : added FIXME info for Hangul Jamo.
1164
1165 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
1166
1167         * create-mscompat-collation-table.cs : Added control picture mappings.
1168           Minor primary weight fixes.
1169
1170 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
1171
1172         * create-mscompat-collation-table.cs : Added mappings for box
1173           drawings and blocks.
1174
1175 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
1176
1177         * create-mscompat-collation-table.cs : Added mappings for arrows.
1178
1179 2005-06-15  Atsushi Enomoto  <atsushi@ximian.com>
1180
1181         * create-mscompat-collation-table.cs : added support for letterlike
1182           characters and squared CJK compatibility characters, ordered by
1183           character names (0x0E category).
1184         * Collation-notes.txt : added description on that.
1185
1186 2005-06-15  Atsushi Enomoto  <atsushi@ximian.com>
1187
1188         * MSCompatUnicodeTable.template : Now expansions are simulated.
1189         * create-mscompat-collation-table.cs : filled Korean number level2.
1190           Reordered some code blocks to fill correct diacritical differences.
1191         * Collation-notes.txt : some corrections and minor additions.
1192
1193 2005-06-15  Atsushi Enomoto  <atsushi@ximian.com>
1194
1195         * MSCompatUnicodeTable.template :
1196           Now dumper test driver uses SortKeyBuffer for dogfooding.
1197         * create-mscompat-collation-table.cs : some diacritical level fixes
1198           (with non-working extra latin check).
1199         * SortKeyBuffer.cs : several fixes to get working as a practical code.
1200         * Collator.cs : make it compilable, leaving things as NotImplemented.
1201
1202 2005-06-15  Atsushi Enomoto  <atsushi@ximian.com>
1203
1204         * create-mscompat-collation-table.cs : some fixes on primary category
1205           07 (miscellaneous symbols and punctuations).
1206
1207 2005-06-14  Atsushi Enomoto  <atsushi@ximian.com>
1208
1209         * create-mscompat-collation-table.cs : more mapping fix on numbers,
1210           letters, variable weight characters, circled Japanese and CJK.
1211         * MSCompatUnicodeTable.template : fixed HasSpecialWeight() to be more
1212           inclusive. Simplified dumper code.
1213
1214 2005-06-14  Atsushi Enomoto  <atsushi@ximian.com>
1215
1216         * create-mscompat-collation-table.cs : finished Hangul (both Jamo
1217           and Syllables). sortkey dumper diff lines became 8000 from 30000.
1218
1219 2005-06-14  Atsushi Enomoto  <atsushi@ximian.com>
1220
1221         * create-mscompat-collation-table.cs : added some nonspacing marks in
1222           either correct or hacky way.
1223
1224 2005-06-13  Atsushi Enomoto  <atsushi@ximian.com>
1225
1226         * create-mscompat-collation-table.cs : several improvements. Japanese
1227           Kana support, Hebrew accents, Bengali nonspacing marks, sorting of
1228           numeric characters, diacritically decorated latin alphabets. Fixed
1229           some diacritical weights detection.
1230         * MSCompatUnicodeTable.cs : tiny Japanese fix. Handle nonspacing
1231           marks' primary weight as empty.
1232         * Collation-notes.txt : some updates.
1233
1234 2005-06-13  Atsushi Enomoto  <atsushi@ximian.com>
1235
1236         * create-mscompat-collation-table.cs : don't process nonexact NFKD 
1237           mapping as equivalent, however store CJK extensions into NFKD map
1238           even if one does not strictly match.
1239           Now am going to fill Hangul into tables (unlike UCA it does not look
1240           possible to calculate sortkey value).
1241           Fixed Cyrillic and Georgian UCA based orderings.
1242         * MSCompatUnicodeTable.template : added CJK extension sortkey 
1243           calculation.
1244
1245 2005-06-10  Atsushi Enomoto  <atsushi@ximian.com>
1246
1247         * create-mscompat-collation-table.cs : Fixed latin alphabet support.
1248           Added latin with diacritical and CJK extension.
1249         * MSCompatUnicodeTable.cs : modified dumper code a bit (for my purpose).
1250
1251 2005-06-10  Atsushi Enomoto  <atsushi@ximian.com>
1252
1253         * create-mscompat-collation-table.cs : now parses DerivedAge.txt (right
1254           now not used thouth). Filled CJK ideograph, still not perfect.
1255           Fixed number primary keys. NFKD numbers and CJK ideographs are now
1256           considered, including brackets elimination.
1257         * Makefile : now it downloads DerivedAge.txt.
1258         * MSCompatUnicodeTable.template : added dummy code dumper. It computes
1259           PrivateUse, Surrogate and Hangul Syllables.
1260         * Collation-notes.txt : Noted that Hangul Syllables need more love.
1261
1262 2005-06-09  Atsushi Enomoto  <atsushi@ximian.com>
1263
1264         * create-tailorings.cs : added configuration support. sort them.
1265           I wonder if it is really usable. Having own format might be better.
1266         * create-mscompat-collation-table.cs : fixing some sortkey numbers,
1267           making closer to windows. Now it handles NFKD in some places.
1268         * MSCompatUnicodeTable.template : Added dummy sortkey dumper driver.
1269         * CollationDataStructures.txt : added description on tailoring
1270           fields, though they are subject to change.
1271
1272 2005-06-07  Atsushi Enomoto  <atsushi@ximian.com>
1273
1274         * create-tailorings.cs, ldml-limited.rng : new file.
1275         * LdmlReader.cs : removed old file.
1276
1277 2005-06-07  Atsushi Enomoto  <atsushi@ximian.com>
1278
1279         * SortKeyBuffer.cs : split from Collator.cs. Now it considers
1280           practical use, reflecting updated sortkey constant design.
1281           Especially level 4 weight is split to 4 arrays that are merged in
1282           the last stage of GetSortKey().
1283         * Collator.cs : thus SortKeyBuffer is removed from here.
1284           Additionally, removed some extraneous bits in other classes.
1285         * Collation-notes.txt : Some editorial fixes. Added information on
1286           Korean matter (how to compute Hangle Syllables / Hangul Jamo cannot
1287           be stored in simple byte arrays).
1288         * CodePointIndexer.cs,
1289           create-collation-element-table.cs,
1290           CollationElementTable.template,
1291           NormalizationTableUtil.cs : short CodePointIndexer method names.
1292         * create-mscompat-collation-table.cs : Additional info on why some
1293           meaningful characters are ignored in Windows (Unicode version
1294           difference). Removed U+070F from special check (was extraneous).
1295
1296 2005-06-06  Atsushi Enomoto  <atsushi@ximian.com>
1297
1298         * MSCompatUnicodeTable.template:
1299           Moved body implementation to table creator and put those bool
1300           results into an array.
1301         * create-mscompat-collation-table.cs :
1302           So imported those methods. Modified array output to emit "0x"
1303           only for more than 9.
1304         * create-normalization-source.cs : ditto on "0x" output matter.
1305         * CollationDataStructures.txt : so now it holds ignorableFlags.
1306
1307 2005-06-03  Atsushi Enomoto  <atsushi@ximian.com>
1308
1309         * Collation-notes.txt, CollationDataStructures.txt :
1310           separate document for data structure design.
1311
1312 2005-06-03  Atsushi Enomoto  <atsushi@ximian.com>
1313
1314         * create-mscompat-collation-table.cs : added culture-dependent CJK
1315           table creation. It uses CLDR as its basis. (Culture independent CJK
1316           is not ready BTW).
1317         * Makefile : added CLDR archive downloading support.
1318         * MSCompatUnicodeTable.template : tiny renamings.
1319         * Collation-notes.txt : additional CJK info.
1320
1321 2005-06-02  Atsushi Enomoto  <atsushi@ximian.com>
1322
1323         * Collation-notes.txt, create-mscompat-collation-table.cs :
1324           added secondary weight support for BlahNumber characters.
1325
1326 2005-06-01  Atsushi Enomoto  <atsushi@ximian.com>
1327
1328         * downloaded : added directory. All downloaded files are stored here.
1329         * Makefile : use "downloaded" directory.
1330           Added more auto-download stuff.
1331         * create-mscompat-collation-table.cs :
1332           Added Japanese square kana support.
1333
1334 2005-06-01  Atsushi Enomoto  <atsushi@ximian.com>
1335
1336         * Collation-notes.txt : added Estrangela (ancient Syriac) and Thaana.
1337         * create-mscompat-collation-table.cs : added support for Arabic abjad,
1338           Estrangela and Thaana.
1339         * MSCompatUnicodeTable.template : removed BOM.
1340
1341 2005-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1342
1343         * Collation-notes.txt : wrong comment cleanup and spelling fixes.
1344         * create-mscompat-collation-table.cs : added diacritic support for
1345           Latin letters (as long as covered in primary weight).
1346
1347 2005-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1348
1349         * Makefile : minor fixes. Added warning lines to generated sources.
1350
1351 2005-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1352
1353         * create-char-mapping-source.cs :
1354           Removed ToWidthInsensitive() generation.
1355
1356 2005-05-31  Atsushi Enomoto  <atsushi@ximian.com>
1357
1358         * create-mscompat-collation-table.cs : Now it dumps level1 to 3 values.
1359           ToWidthInsensitive() is implemented here, using an array (which is
1360           to be optimized using CodePointIndexer).
1361         * MSCompatUnicodeTable.cs : renamed as MSCompatUnicodeTable.template
1362         * MSCompatUnicodeTable.template : now it is used to generate
1363           MSCompatUnicodeTable.cs which got ready to be used.
1364         * Makefile : added MSCompatUnicodeTable.cs build support. Now it
1365           supports "make normalization" and "make collation".
1366
1367 2005-05-30  Atsushi Enomoto  <atsushi@ximian.com>
1368
1369         * Collation-notes.txt : Description on ICU is very incorrect. Now it
1370           became more rational and sane.
1371         * create-mscompat-collation-table.cs : fixed some indexes.
1372         * Makefile : added "mstablegen" target.
1373         * MSCompatUnicodeTable.cs : removed GetPrimaryWeight(). Minor fix.
1374
1375 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1376
1377         * Collation-notes.txt : more analysis on "letters".
1378         * create-mscompat-collation-table.cs : more proof of concepts.
1379
1380 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1381
1382         * Collation-notes.txt : more info. Started letter sortkey analysis
1383           (some of other stuff are really non-understandable right now.)
1384         * create-mscompat-collation-table.cs : table generator proof-of-
1385           concept source (not compilable).
1386         * MSCompatUnicodeTable.cs : moved some code to the new source.
1387           Some more fixes.
1388
1389 2005-05-20  Atsushi Enomoto  <atsushi@ximian.com>
1390
1391         * Collation-notes.txt : started level 2 weight analysis.
1392
1393 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
1394
1395         * Collation-notes.txt : Additional information on how to create
1396           level 3 tables.
1397         * MSCompatUnicodeTable.cs : implemented part of GetLevel3Weight().
1398
1399 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
1400
1401         * Collation-notes.txt : More case weight (level 3) analysis. I'm
1402           likely to just write table generator.
1403
1404 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
1405
1406         * MSCompatUnicodeTable.cs : part of level 4 weight implementation.
1407
1408 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
1409
1410         * Collation-notes.txt :
1411           Added task list.
1412           Revised comparison methods; backward iteration is possible.
1413           More on char-by-char comparison.
1414           Level 4 comparison is actually a bit more complex.
1415           Misc corrections.
1416         * Collator.cs : some conceptual updates wrt above.
1417
1418 2005-05-17  Atsushi Enomoto  <atsushi@ximian.com>
1419
1420         * Collation-notes.txt : Japanese voice mark is level 2, and Hangul
1421           properties are level 3.
1422
1423 2005-05-17  Atsushi Enomoto  <atsushi@ximian.com>
1424
1425         * Collation-notes.txt : Make it more readable. More analysis on
1426           level 3 and 4 sortkey structures.
1427         * Collator.cs : some compilation fixes (not compilable yet).
1428
1429 2005-05-16  Atsushi Enomoto  <atsushi@ximian.com>
1430
1431         * Collation-notes.txt : Analysis on variable-weighting (level 5)
1432           sortkey format.
1433         * Collator.cs : updated corresponding part of level 5, and more.
1434
1435 2005-05-13  Atsushi Enomoto  <atsushi@ximian.com>
1436
1437         * Collation-notes.txt : more updates.
1438         * Collator.cs : rewrote from scratch. Some rough sketch for sortkey
1439           buffer, character iterator and collator methods. Not compiling.
1440
1441 2005-05-13  Atsushi Enomoto  <atsushi@ximian.com>
1442
1443         * Collator.cs : Am going to replace it with new one. No need for 
1444           CompareOptions-dependent Comparer.
1445
1446 2005-05-13  Atsushi Enomoto  <atsushi@ximian.com>
1447
1448         * Collation-notes.txt : There seems a bit more complexity.
1449
1450 2005-05-10  Atsushi Enomoto  <atsushi@ximian.com>
1451
1452         * Collation-notes.txt : more updates, being close to write sortkey
1453           generator code.
1454
1455 2005-05-09  Atsushi Enomoto  <atsushi@ximian.com>
1456
1457         * CompareInfoImpl.cs, Collator.cs : conceptual update
1458         * Collation-notes.txt : some corrections and additions.
1459         * Makefile : added LDML input (but it won't be used at all).
1460
1461 2005-04-28  Atsushi Enomoto  <atsushi@ximian.com>
1462
1463         * Collation-notes.txt : more updates.
1464
1465 2005-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1466
1467         * Collation-notes.txt : more updates.
1468
1469 2005-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1470
1471         * Collation-notes.txt : some updates.
1472         * create-mapping-char-source.cs : superscripts and subscripts are also
1473           ignored in IgnoreWidth comparison.
1474         * Makefile : tiny touch fix.
1475
1476 2005-04-25  Atsushi Enomoto  <atsushi@ximian.com>
1477
1478         * CompareInfoImpl.cs, Collator.cs : conceptual stuff (not working).
1479
1480 2005-04-25  Atsushi Enomoto  <atsushi@ximian.com>
1481
1482         * create-char-mapping-source.cs : Now it generates
1483           ToWidthInsensitive() from combining category <wide> and <narrow>.
1484         * MSCompatUnicodeTable.cs : added ToKanaTypeInsensitive() and
1485           ToWidthInsensitive() for IgnoreKanaType and IgnoreWidth.
1486
1487 2005-04-25  Atsushi Enomoto  <atsushi@ximian.com>
1488
1489         * README, LdmlReader.cs, DataStructures.txt : new files.
1490
1491 2005-04-25  Atsushi Enomoto  <atsushi@ximian.com>
1492
1493         * CodePointIndexer.cs,
1494           Collation-notes.txt,
1495           CollationElementTable.template,
1496           CollationElementTableUtil.cs,
1497           create-char-mapping-source.cs,
1498           create-collation-element-table.cs,
1499           create-combining-class-source.cs,
1500           create-normalization-source.cs,
1501           Makefile,
1502           MSCompatUnicodeTable.cs,
1503           Normalization.template,
1504           NormalizationTableUtil.cs : initial checkin (to private branch).
1505