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