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