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