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