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