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