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