2005-07-19 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / corlib / Mono.Globalization.Unicode / ChangeLog
1 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * create-mscompat-collation-table.cs : Symbol mappings are almost done.
4           Removed hack that gave dummy mappings to blank symbols.
5
6 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
7
8         * create-mscompat-collation-table.cs : more fix on arrows. Fix on box
9           drawings. Some code refactoring to eliminate hack.
10
11 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
12
13         * create-mscompat-collation-table.cs : Fixed some secondary weight
14           in Devanagari and arrows.
15
16 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
17
18         * create-mscompat-collation-table.cs : a set of tiny mapping fixes.
19
20 2005-07-19  Atsushi Enomoto  <atsushi@ximian.com>
21
22         * create-mscompat-collation-table.cs : some diacritical fixes for
23           Latin. Added batch mapping method that considers computed
24           diacritical weight (for numbers).
25
26 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
27
28         * managed-collation.patch : forgot to add System.String patch.
29
30 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
31
32         * MSCompatUnicodeTable.cs : added resource existence check (required
33           for mscorlib transient time from the one without resources to the
34           one with resources.
35
36 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
37
38         * create-mscompat-collation-table.cs : fixed punctuations and hyphen
39           (shift) primary weight.
40
41 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
42
43         * create-mscompat-collation-table.cs : more nonspacing mark fixes.
44           Some non-basic Cyrillic diacritical weight fixes.
45
46 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
47
48         * create-mscompat-collation-table.cs : some Gurmukhi fixes on level 1 
49           and level 3. Tiny Hangul weight fixes.
50         * MSCompatUnicodeTable.cs : U+30F5 and U+30F6 are small Japanese.
51
52 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
53
54         * create-mscompat-collation-table.cs : some normal characters who have
55           "narrow" NFKD mapping are regarded as "wide" and thus level 3 weight
56           values were different.  Handle U+30FB as category A.
57         * MSCompatUnicodeTable.cs : U+30FB does not have special weight.
58
59 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
60
61         * create-mscompat-collation-table.cs : more diacritical weight fixes.
62           Removed some unused code.
63
64 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
65
66         * create-mscompat-collation-table.cs : Fixed some Thai and Arabic
67           level 2 weight.
68
69 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
70
71         * create-mscompat-collation-table.cs : Fixed Syriac nonspacing marks.
72
73 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
74
75         * create-mscompat-collation-table.cs : Fixed nonspacing marks in
76           Malayalam, Thai and Lao. Removed extraneous hack.
77
78 2005-07-15  Atsushi Enomoto  <atsushi@ximian.com>
79
80         * SimpleCollator.cs : rewrote LastIndexOf() to handle source extenders.
81           Some refactoring on IndexOf() code. Removed unused Matches().
82         * Collation-notes.txt : some methods needed to be reimplemented, so
83           rewrote the description.
84
85 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
86
87         * SimpleCollator.cs : rewrote IsSuffix() to use CompareInternal().
88           Thus supported extenders in IsSuffix().
89
90 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
91
92         * SimpleCollator.cs : more IsSuffix() simplification, but it will be
93           stopped here since it cannot handle extenders (implementing new
94           approach one).
95
96 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
97
98         * SimpleCollator.cs : simplified IsSuffix() code.
99
100 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
101
102         * SimpleCollator.cs : Fixed IndexOf() and LasIndexOf() to search the
103           entire replacement string if char target was an expansion.
104           IsSuffix() was using a method for IsPrefix() which was incorrect.
105           Removed old IsPrefix() code.
106
107 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
108
109         * SimpleCollator.cs : IndexOf() was incorrectly sharing the same
110           byte[] field in different areas of code. Now extenders in both
111           source and target really work in IndexOf().
112
113 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
114
115         * create-mscompat-collation-table.cs : fixed U+FF9F diacritical weight.
116         * SimpleCollator.cs : handle U+FF9E and U+FF9F as extenders.
117
118 2005-07-14  Atsushi Enomoto  <atsushi@ximian.com>
119
120         * SimpleCollator.cs : Now FilterExtender() handles all extender
121           support. IndexOf() and LastIndexOf() now supports extenders.
122           IndexOf() and LastIndexOf() did not proceed contraction source
123           length as expected. Tiny refactoring on private IsPrefix() to take
124           stringSort argument.
125
126 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
127
128         * SimpleCollator.cs : when restoring from expansion, go back to the
129           top of the loop (to avoid index out of range).
130           Now IsPrefix() is implemented to reuse Compare() and thus it now
131           supports extender as well.
132         * Collation-notes.txt : status update. Deleted optimization part in
133           status section (it is duplicate).
134
135 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
136
137         * SimpleCollator.cs : some code reordering.
138         * create-mscompat-collation-table.cs : it was still missing U+3094.
139
140 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
141
142         * SimpleCollator.cs : Compare() now supports extender (e.g. U+39FC).
143
144 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
145
146         * SimpleCollator.cs : In GetSortKey(), don't update previousChar when
147           it is not primary (e.g. don't "extend" diacritical mark).
148
149 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
150
151         * managed-collation.patch : CompareInfo.Compare() should consider
152           the possibilities that non-empty string might be actually empty
153           in culture-sensitive context.
154
155 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
156
157         * SimpleCollator.cs : IndexOf() and LastIndexOf() returns start when
158           target is "empty" (in culture-sensitive context).
159
160 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
161
162         * SimpleCollator.cs : In IndexOf() and LastIndexOf(), skip ignorable
163           characters in target string.
164
165 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
166
167         * SimpleCollator.cs : When IgnoreWidth is specified, all Kana
168           characters are regarded as half-width.
169           Even though IgnoreWidth is specified, it should not ignore case.
170           For special weight comparison, the default values (E4) are bigger
171           than non-default values.
172         * SortKeyBuffer.cs : It should save LCID and original string.
173         * create-mscompat-collation-table.cs : For Japanese half-width kana,
174           it should not be counted in widthCompat map since IgnoreWidth does
175           not really ignore those differences.
176
177 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
178
179         * create-mscompat-collation-table.cs : Fixed missing Japanese bits.
180
181 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
182
183         * create-mscompat-collation-table.cs :
184           tiny diacritical weight fix for U+20D0-U+20E1.
185
186 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
187
188         * create-mscompat-collation-table.cs : ja CJK ideograph got completed.
189
190 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
191
192         * create-mscompat-collation-table.cs : Fixed CJK custom Japanese
193           mapping. It (maybe as well as other CJK tables) mixes NFKD. For
194           Japanese, modified NFKD table (because of Windows lame design).
195
196 2005-07-13  Atsushi Enomoto  <atsushi@ximian.com>
197
198         * Makefile : added MONO_USE_MANAGED_COLLATION=no almost everywhere.
199         * MSCompatUnicodeTable.cs : FillCJK() was not invoked. Now it is
200           invoked at any time it is required.
201         * SimpleCollator.cs : call FillCJK() above in .ctor().
202         * MSCompatUnicodeTableUtil.cs : CJK range was wider.
203         * create-mscompat-collation-table.cs : CJK binary was missing the
204           length. CJK remapping is being moved to ModifyUnidata().
205           For cjk-ja mapping, we have to consider compat characters to be
206           added to the map, besides the raw UCA table.
207
208 2005-07-12  Atsushi Enomoto  <atsushi@ximian.com>
209
210         * SortKeyBuffer.cs : Fixed shift level computation to match w/ Windows.
211
212 2005-07-12  Atsushi Enomoto  <atsushi@ximian.com>
213
214         * SimpleCollator.cs : fixed LastIndexOf() to handle _target's_ 
215           contraction as expected. Fixed Compare() to save s2's contraction
216           as expected.
217         * TestDriver.cs :added LastIndexOf() tester w/ indexes.
218
219 2005-07-12  Atsushi Enomoto  <atsushi@ximian.com>
220
221         * managed-collation.patch : Fixed IsPrefix() and IsSuffix(). They
222           incorrectly use Compare().
223         * TestDriver.cs : more moved to nunit tests.
224
225 2005-07-12  Atsushi Enomoto  <atsushi@ximian.com>
226
227         * SimpleCollator.cs : several fixes on Compare().
228           - Ignorable characters are skippted at the top of the loop. 
229           - IgnoreNonSpace is checked to avoid extraneous level 2 comparison.
230           - In such case that s1 index  is increased while s2 contraction is
231             replaced, s1 is inconsistently proceeded (bug).
232           - IsIgnorable() now also checks IgnoreNonSpace.
233           - Fixed FilterOptions() that does not work for IgnoreWidth at all.
234         * TestDriver.cs : now some are moved to nunit tests.
235         * Collation-notes.txt : minor todo update.
236
237 2005-07-11  Atsushi Enomoto  <atsushi@ximian.com>
238
239         * SimpleCollator.cs : Compare() was ignoring such case that both
240           entire strings have '-' to be compared.
241         * Collation-notes.txt : more status updates.
242         * TestDriver.cs : added '-' use cases.
243
244 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
245
246         * SimpleCollator.cs : to be same as other buggy part, it now handles
247           U+3005, U+3031 and U+3032 as buggy as Windows. It just repeats
248           previous character.
249           Fixed GetSortKey(): if the repeater is U+3005, second weight is 5.
250         * create-mscompat-collation-table.cs : dummy values for extenders.
251
252 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
253
254         * SimpleCollator.cs : Special weight fixes on GetSortKey(). Dash type
255           should be computed from ExtenderType, and voice mark weight should
256           be considered.
257         * MSCompatUnicodeTable.cs : added tiny comment.
258
259 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
260
261         * SortKey.cs : It borked when MONO_USE_MANAGED_COLLATION is not yes.
262         * SimpleCollator.cs : support for extender (U+309D etc.).
263
264 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
265
266         * create-mscompat-collation-table.cs : some punct/symbols fix.
267         * managed-collation.patch : new (and temporary) file to support
268           managed collation in mscorlib.
269         * README : described how to use managed collation.
270
271 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
272
273         * create-mscompat-collation-table.cs : Further Cyrillic fixes. Handle
274           U+482-4C8 (though needs diacritical fixes).
275         * MSCompatUnicodeTable.cs : tiny comment for alternative impl.
276
277 2005-07-08  Atsushi Enomoto  <atsushi@ximian.com>
278
279         * create-mscompat-collation-table.cs : Reimplemented Cyrillic weight
280           computation code, since it looks like the same way as Latin letters
281           have. Thus removed all other approach (UCA, by letter name).
282
283 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
284
285         * create-mscompat-collation-table.cs : diacritical fix for "double-
286           struck". Syriac nonspacing fixes.
287
288 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
289
290         * create-mscompat-collation-table.cs : more math symbol weight fixes.
291
292 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
293
294         * create-mscompat-collation-table.cs : fixed Hebrew character sortkeys.
295
296 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
297
298         * create-mscompat-collation-table.cs : math symbols U+25A0-U+2600 are
299           implemented (no stub). Some other fixes on category 8-A.
300
301 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
302
303         * create-mscompat-collation-table.cs : some minor fixes on Arabic,
304           Korean and Japanese sortkey weights.
305
306 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
307
308         * create-mscompat-collation-table.cs : More diacritical fixes.
309           Georgian characters do not have level 2 weights but level 3.
310
311 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
312
313         * create-mscompat-collation-table.cs : Roman numeral characters
314           have diacritical weight. quick hack for control signs (U+2400..)
315           and box drawings.
316
317 2005-07-06  Atsushi Enomoto  <atsushi@ximian.com>
318
319         * create-mscompat-collation-table.cs : improving Latin mappings.
320           Setting non-ASCII Latin characters' primary weight between those
321           ASCII characters, and setting diacritical weight (hacky).
322         * MSCompatUnicodeTable.cs :
323           Kanatype check: fixed (voice marks) and improved (comparison order).
324
325 2005-07-06  Atsushi Enomoto  <atsushi@ximian.com>
326
327         * create-mscompat-collation-table.cs : more diacritical fixes.
328           primary weight fixes on punctuations in category 07.
329
330 2005-07-06  Atsushi Enomoto  <atsushi@ximian.com>
331
332         * create-mscompat-collation-table.cs : several diacritical fixes.
333         * TestDriver.cs : sortkey dumper should use StringSort.
334
335 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
336
337         * SimpleCollator.cs : fixed incorrect indexer setup. Optimized
338           GetContraction() call a bit.
339
340 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
341
342         * create-mscompat-collation-table.cs : fixed incorrect level 2
343           output type.
344         * MSCompatUnicodeTable.cs : remove debug line.
345
346 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
347
348         * MSCompatUnicodeTableUtil.cs,
349           MSCompatUnicodeTable.cs,
350           CodePointIndexer.cs,
351           create-mscompat-collation-table.cs : made some members internal and
352           accessible from other classes. Many indexes could be 0 by default.
353         * SimpleCollator.cs : optimizations. avoid method call.
354
355 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
356
357         * Collation-notes.txt : more updates.
358         * SimpleCollator.cs : Added quick check for Ordinal comparison.
359           Fixed special weight comparison. It cannot be customizable in the
360           implementation (and it won't be harmful).
361         * mono-tailoring-source.txt : thus updated comment.
362
363 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
364
365         * SimpleCollator.cs : Compare() was missing French sort support.
366         * TestDriver.cs : added example case.
367
368 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
369
370         * Collation-notes.txt : updated status. Eliminated descriptions on
371           "iterator" (I avoided it for performance concern). Fixed misc.
372           incorrect descriptions.
373
374 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
375
376         * Collator.cs : Now that SimpleCollator became feature complete, it is
377           not useful anymore.
378
379 2005-07-05  Atsushi Enomoto  <atsushi@ximian.com>
380
381         * SimpleCollator.cs : implemented decent Compare() that immediately
382           stops at first primary difference.
383
384 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
385
386         * SimpleCollator.cs : indexers might return -1.
387
388 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
389
390         * SimpleCollator.cs : IsPrefix() and IsSuffix() optimization code was
391           buggy (length check for source was missing).
392
393 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
394
395         * create-mscompat-collation-table.cs : Fixed tailoring table output
396           to be in correct and countable order. Now if tailoring alias was not
397           found, just stop the build.
398         * MSCompatUnicodeTable.cs : several build fixes. Now it works to read
399           assembly resources.
400         * mono-tailoring-source.txt : commented out CJK aliases that miss
401           target.
402         * Makefile : needed further filename fixes.
403
404 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
405
406         * MSCompatUnicodeTable.cs : renamed from MSCompatUnicodeTable.template
407           (now it is working as a standalone file).
408         * Makefile : renamed generated file as MSCompatUnicodeTableGenerated.cs
409           (the generator now creates both binary resources and C# source).
410
411 2005-07-04  Atsushi Enomoto  <atsushi@ximian.com>
412
413         * create-mscompat-collation-table.cs : Now it generates binary
414           resources (to parent directory).
415         * MSCompatUnicodeTable.template : added conditional code that fills
416           collation tables from manifest resources.
417         * Makefile : remove collation table binaries as well on "make clean".
418           Removed extraneous dependency.
419
420 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
421
422         * MSCompatUnicodeTable.template,
423           SimpleCollator.cs : removed extraneous GetExpansion().
424
425 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
426
427         * SimpleCollator.cs : IsSuffix() also supports contractions.
428         * TestDriver.cs : IsSuffix() example contraction cases.
429
430 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
431
432         * SimpleCollator.cs : reverted IsSuffix() to return bool (to match w/
433           what current IsPrefix() does). For expansion of target, IsPrefix()
434           should check the no-match case that expansion is longer than input.
435           Some refactory on IsPrefix().
436           Added GetContractionTal() for IsSuffix() (not used yet).
437
438 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
439
440         * TestDriver.cs : added IsPrefix() expansion cases.
441         * SimpleCollator.cs : IsPrefix() now supports contractions (with much
442           of complexity), and it now returns bool again.
443           IndexOf() for replacement should make use of IndexOfPrimitiveChar()
444           since expansions won't be expanded recursively.
445
446 2005-07-01  Atsushi Enomoto  <atsushi@ximian.com>
447
448         * SimpleCollator.cs : commonized character comparison in IsPrefix()
449           and IsSuffix(). csc compile fix.
450         * CompareInfoImpl.cs : deleted.
451
452 2005-06-30  Atsushi Enomoto  <atsushi@ximian.com>
453
454         * TestDriver.cs : added SimpleCollator.ctor() sanity check.
455           Added replacement contraction example.
456         * SimpleCollator.cs : Now IndexOf() and LastIndexOf() support 
457           contraction in source string. Extracted matching code to Matches().
458           Replacement contraction was including extraneous '\x0'.
459
460 2005-06-30  Atsushi Enomoto  <atsushi@ximian.com>
461
462         * Collation-notes.txt : updated status.
463         * CollationDataStructures.txt : tiny fixes.
464         * SimpleCollator.cs :
465           Renamed alias Util to UUtil (MS sys.enterprisesvc has sucky global
466           namespace Util and csc borked).
467           GetContraction was incorrectly returning first item.
468           Private IsPrefix() now returns int (but it might not be in real use).
469           Extracted simple char comparison to CompareCharSimple().
470           IndexOf() and LastIndexOf() now fully handle contractions (both
471           binary key and string replacement) in "target" (for "s" not yet).
472         * TestDriver.cs : be more verbose.
473         * mono-tailoring-source.txt : added comment.
474         * MSCompatUnicodeTable.template :
475           Renamed alias Util to UUtil (MS sys.enterprisesvc has sucky global
476
477 2005-06-30  Atsushi Enomoto  <atsushi@ximian.com>
478
479         * create-mscompat-collation-table.cs : compute COMBINING blah marks as
480           well as those characters WITH blah.
481         * TestDriver.cs : added combining sortkey cases.
482
483 2005-06-30  Atsushi Enomoto  <atsushi@ximian.com>
484
485         * mono-tailoring-source.txt : fixed description on '*' in sortkeys.
486         * SimpleCollator.cs : Now it fully uses tailoring info. Fixed
487           contraction search that worked only when string is contraction.
488           Removed commented code. Minor refactoring.
489         * TestDriver.cs : added example that uses "ZS" in Hungarian sorting.
490
491 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
492
493         * create-mscompat-collation-table.cs,
494         * mono-tailoring-source.txt : removed extraneous level 4 sortkey
495           which cannot be supported.
496         * SimpleCollator.cs : added GetContraction() and used in some places.
497           Now CompareOptions is set only once. Reordered some code (e.g.
498           ignorable check -> get compat char -> compare).
499
500 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
501
502         * SimpleCollator.cs : sort tailoring tables before actual usage.
503           Support diacritical remappings (it is customized collation rule
504           which does not exist in UCA).
505
506 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
507
508         * SimpleCollator.cs : build culture specific tailoring table from
509           TailoringInfo and unified data array.
510         * create-mscompat-collation-table.cs : Added null termination to
511           sortkey map tailorings (mostly to save my eyes).
512         * MSCompatUnicodeTable.template : added public TailoringValues.
513
514 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
515
516         * SortKeyBuffer.cs : handle special weight (category 06) characters.
517         * Collation-notes.txt : Updated description on special weight (it was
518           incorrect).
519         * TestDriver.cs : added special weight cases.
520
521 2005-06-29  Atsushi Enomoto  <atsushi@ximian.com>
522
523         * MSCompatUnicodeTable.template : added GetTailoringInfo().
524         * SimpleCollator.cs : Now tailoring information is acquired and used.
525           (FrenchSort is supported but Compare() won't work expectedly since
526            the table is still incomplete for those diacritical marks).
527         * SortKeyBuffer.cs : On reversing diacritical weights, it should
528           ignore zeros. Reset() should reset frenchSorted flag.
529
530 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
531
532         * create-mscompat-collation-table.cs : Further fixes on Jamo,
533           diacritical weights by character name, and *Numbers primary weights.
534
535 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
536
537         * create-mscompat-collation-table.cs : More fix on Devanagari,
538           Gujarati, Oliya, Tamil and Lao sortkeys.
539
540 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
541
542         * create-mscompat-collation-table.cs : Fixed Georgian, Thai, Gurmukhi
543           sortkey values.
544
545 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
546
547         * create-mscompat-collation-table.cs : Fixed Thai character primary
548           and secondary values. Fixed Thaana letters. Added more LAMESPEC
549           CJK compat. Fixed some circled CJK secondary weight.
550           Hacked some nonspacing mark sortkey value adjustment.
551
552 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
553
554         * create-mscompat-collation-table.cs : CP932.TXT was not parsed as
555           expected. JIS ordering was incorrect. OtherNumbers that represents
556           10 or more values were incorrectly computed the offset. Some Hangul
557           compat characters has different offset.
558
559 2005-06-28  Atsushi Enomoto  <atsushi@ximian.com>
560
561         * create-mscompat-collation-table.cs : Fixed 0x8 category characters.
562           Added hack for need-to-be-fixed characters to fall into 0xA category.
563         * create-collation-element-table.cs : previous checkin seem failed :(
564         * README: updated a bit.
565
566 2005-06-24  Atsushi Enomoto  <atsushi@ximian.com>
567
568         * CodePointIndexer.cs :
569           removed extraneous switch (I could use empty array for that need).
570         * CollationElementTableUtil.cs : primary weight type became ushort.
571         * create-collation-element-table.cs : several bugfixes.
572           collElem should be int. It was skipping most of entries because of
573           incorrect string tokenization.
574
575 2005-06-23  Atsushi Enomoto  <atsushi@ximian.com>
576
577         * create-mscompat-collation-table.cs : handle some Jamo NKFD.
578
579 2005-06-23  Atsushi Enomoto  <atsushi@ximian.com>
580
581         * SimpleCollator.cs : forgot to commit in the last checkin.
582         * create-mscompat-collation-table.cs : fixed arabic shift weight chars.
583         * TestDriver.cs : switch table dumper and collator testing.
584         * SortKey.cs : for now comment out internal indexes (not in use).
585
586 2005-06-23  Atsushi Enomoto  <atsushi@ximian.com>
587
588         * MSCompatUnicodeTable.template,
589           SimpleCollator.cs : support for culture dependent CJK table.
590
591 2005-06-23  Atsushi Enomoto  <atsushi@ximian.com>
592
593         * create-mscompat-collation-table.cs,
594           MSCompatUnicodeTableUtil.cs : make CJK table more compact.
595
596 2005-06-22  Atsushi Enomoto  <atsushi@ximian.com>
597
598         * SimpleCollator.cs : Fixed stupid index search when start != 0.
599
600 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
601
602         * SimpleCollator.cs : fixed my misunderstanding on LastIndexOf(). It
603           now starts from "start" and proceeds backward by "length".
604         * TestDriver.cs : fix warning.
605
606 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
607
608         * TestDriver.cs : more tests.
609         * SimpleCollator.cs : LastIndexOf() is not setting search length
610           on iteration. Quick workaround fro String.LastIndexOf() bug (maybe).
611
612 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
613
614         * create-normalization-source.cs : output propValue as uint.
615
616 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
617
618         * SortKey.cs : Now it is System.Globalization.SortKey.
619           To replace existing implementation, it now requires lcid and 
620           CompareOptions. Added required members.
621         * SortKeyBuffer.cs : thus .ctor() requires LCID.
622         * SimpleCollator.cs : made required changes above.
623
624 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
625
626         * CodePointIndexer.cs : added CompressArray(). Now it requires two more
627           parameters for default index and codepoint.
628         * CollationElementTableUtil.cs,
629           NormalizationTableUtil.cs : required changes wrt above change.
630         * MSCompatUnicodeTableUtil.cs : added for several codepoint indexers.
631         * MSCompatUnicodeTable.template : Now it uses codepoint indexer.
632         * create-mscompat-collation-table.cs : Now it outputs compressed array.
633         * Makefile : now collation requires MSCompatUnicodeTableUtil.cs
634
635 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
636
637         * SimpleCollator.cs :
638           Implemented IsSuffix() and LastIndexOf().
639           Several fixes on index > 0 cases.
640         * TestDriver.cs : sample IsSuffix() and LastIndexOf() usage and more.
641
642 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
643
644         * Collation-notes.txt : updated (status, impl. classes).
645         * MSCompatUnicodeTable.cs : Korean Jamo are not really expansions.
646
647 2005-06-21  Atsushi Enomoto  <atsushi@ximian.com>
648
649         * SimpleCollator.cs : implemented IndexOf(string,string,CompareOptions)
650           and IsPrefix(). Tiny code refactory.
651         * TestDriver.cs : sample IsPrefix() and IndexOf() usage.
652         * MSCompatUnicodeTable.cs : tiny refactory for CodePointIndexer use.
653
654 2005-06-20  Atsushi Enomoto  <atsushi@ximian.com>
655
656         * SimpleCollator.cs :
657           IndexOf(string, char, CompareOptions) implementation.
658         * TestDriver.cs : sample IndexOf() usage.
659
660 2005-06-20  Atsushi Enomoto  <atsushi@ximian.com>
661
662         * create-mscompat-collation-table.cs : was missing most important
663           kind of blocks - equivalent expansions (e.g. invariant mappings).
664           More readable mappings.
665
666 2005-06-20  Atsushi Enomoto  <atsushi@ximian.com>
667
668         * mono-tailoring-source.txt : new file. It describes tailoring
669           information. Basically examined under .NET 1.x.
670         * create-mscompat-collation-table.cs : consume the file above.
671         * MSCompatUnicodeTable.template : now tailorings is not a stub.
672         * CollationDataStructures.txt : minor fixes.
673         * SortKeyBuffer.cs,
674           SimpleCollator.cs : added FrenchSort support.
675         * Collation-notes.txt : added description on Latin primary weights.
676         * ldml-limited.rng : added note.
677         * create-tailorings.cs : added note. more serialization (but won't be 
678           used anyways).
679
680 2005-06-17  Atsushi Enomoto  <atsushi@ximian.com>
681
682         * SortKeyBuffer.cs : non-primary character is added to previous 
683           diacritical weight.
684         * TestDriver.cs : added example case of above.
685
686 2005-06-17  Atsushi Enomoto  <atsushi@ximian.com>
687
688         * SimpleCollator.cs : IgnoreSymbols support.
689         * TestDriver.cs : compilation fix. IgnoreSymbols example.
690         * create-mscompat-collation-table.cs : more Hangul fixes.
691
692 2005-06-17  Atsushi Enomoto  <atsushi@ximian.com>
693
694         * create-mscompat-collation-table.cs : more Hangul fixes.
695         * SortKey.cs : it will replace sys.globalization.SortKey. It has
696           some internal members.
697         * SortKeyBuffer.cs : now it uses SortKey instead of byte[].
698         * SimpleCollator.cs : CompareOptions support. However I don't think
699           it will be developed anymore since SortKey never enables IndexOf().
700         * TestDriver.cs : a few CompareOptions cases.
701
702 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
703
704         * SimpleCollator.cs : simple collator implementation that just will
705           use GetSortKey() for all its basis.
706         * TestDriver.cs : sample code that uses this collator set.
707         * MSCompatUnicodeTable.template : removed test driver from here.
708
709 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
710
711         * create-mscompat-collation-table.cs : Hangul fixes.
712           Now less than 300 characters that does not have sortkey weights.
713         * MSCompatUnicodeTable.template : added FIXME info for Hangul Jamo.
714
715 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
716
717         * create-mscompat-collation-table.cs : Added control picture mappings.
718           Minor primary weight fixes.
719
720 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
721
722         * create-mscompat-collation-table.cs : Added mappings for box
723           drawings and blocks.
724
725 2005-06-16  Atsushi Enomoto  <atsushi@ximian.com>
726
727         * create-mscompat-collation-table.cs : Added mappings for arrows.
728
729 2005-06-15  Atsushi Enomoto  <atsushi@ximian.com>
730
731         * create-mscompat-collation-table.cs : added support for letterlike
732           characters and squared CJK compatibility characters, ordered by
733           character names (0x0E category).
734         * Collation-notes.txt : added description on that.
735
736 2005-06-15  Atsushi Enomoto  <atsushi@ximian.com>
737
738         * MSCompatUnicodeTable.template : Now expansions are simulated.
739         * create-mscompat-collation-table.cs : filled Korean number level2.
740           Reordered some code blocks to fill correct diacritical differences.
741         * Collation-notes.txt : some corrections and minor additions.
742
743 2005-06-15  Atsushi Enomoto  <atsushi@ximian.com>
744
745         * MSCompatUnicodeTable.template :
746           Now dumper test driver uses SortKeyBuffer for dogfooding.
747         * create-mscompat-collation-table.cs : some diacritical level fixes
748           (with non-working extra latin check).
749         * SortKeyBuffer.cs : several fixes to get working as a practical code.
750         * Collator.cs : make it compilable, leaving things as NotImplemented.
751
752 2005-06-15  Atsushi Enomoto  <atsushi@ximian.com>
753
754         * create-mscompat-collation-table.cs : some fixes on primary category
755           07 (miscellaneous symbols and punctuations).
756
757 2005-06-14  Atsushi Enomoto  <atsushi@ximian.com>
758
759         * create-mscompat-collation-table.cs : more mapping fix on numbers,
760           letters, variable weight characters, circled Japanese and CJK.
761         * MSCompatUnicodeTable.template : fixed HasSpecialWeight() to be more
762           inclusive. Simplified dumper code.
763
764 2005-06-14  Atsushi Enomoto  <atsushi@ximian.com>
765
766         * create-mscompat-collation-table.cs : finished Hangul (both Jamo
767           and Syllables). sortkey dumper diff lines became 8000 from 30000.
768
769 2005-06-14  Atsushi Enomoto  <atsushi@ximian.com>
770
771         * create-mscompat-collation-table.cs : added some nonspacing marks in
772           either correct or hacky way.
773
774 2005-06-13  Atsushi Enomoto  <atsushi@ximian.com>
775
776         * create-mscompat-collation-table.cs : several improvements. Japanese
777           Kana support, Hebrew accents, Bengali nonspacing marks, sorting of
778           numeric characters, diacritically decorated latin alphabets. Fixed
779           some diacritical weights detection.
780         * MSCompatUnicodeTable.cs : tiny Japanese fix. Handle nonspacing
781           marks' primary weight as empty.
782         * Collation-notes.txt : some updates.
783
784 2005-06-13  Atsushi Enomoto  <atsushi@ximian.com>
785
786         * create-mscompat-collation-table.cs : don't process nonexact NFKD 
787           mapping as equivalent, however store CJK extensions into NFKD map
788           even if one does not strictly match.
789           Now am going to fill Hangul into tables (unlike UCA it does not look
790           possible to calculate sortkey value).
791           Fixed Cyrillic and Georgian UCA based orderings.
792         * MSCompatUnicodeTable.template : added CJK extension sortkey 
793           calculation.
794
795 2005-06-10  Atsushi Enomoto  <atsushi@ximian.com>
796
797         * create-mscompat-collation-table.cs : Fixed latin alphabet support.
798           Added latin with diacritical and CJK extension.
799         * MSCompatUnicodeTable.cs : modified dumper code a bit (for my purpose).
800
801 2005-06-10  Atsushi Enomoto  <atsushi@ximian.com>
802
803         * create-mscompat-collation-table.cs : now parses DerivedAge.txt (right
804           now not used thouth). Filled CJK ideograph, still not perfect.
805           Fixed number primary keys. NFKD numbers and CJK ideographs are now
806           considered, including brackets elimination.
807         * Makefile : now it downloads DerivedAge.txt.
808         * MSCompatUnicodeTable.template : added dummy code dumper. It computes
809           PrivateUse, Surrogate and Hangul Syllables.
810         * Collation-notes.txt : Noted that Hangul Syllables need more love.
811
812 2005-06-09  Atsushi Enomoto  <atsushi@ximian.com>
813
814         * create-tailorings.cs : added configuration support. sort them.
815           I wonder if it is really usable. Having own format might be better.
816         * create-mscompat-collation-table.cs : fixing some sortkey numbers,
817           making closer to windows. Now it handles NFKD in some places.
818         * MSCompatUnicodeTable.template : Added dummy sortkey dumper driver.
819         * CollationDataStructures.txt : added description on tailoring
820           fields, though they are subject to change.
821
822 2005-06-07  Atsushi Enomoto  <atsushi@ximian.com>
823
824         * create-tailorings.cs, ldml-limited.rng : new file.
825         * LdmlReader.cs : removed old file.
826
827 2005-06-07  Atsushi Enomoto  <atsushi@ximian.com>
828
829         * SortKeyBuffer.cs : split from Collator.cs. Now it considers
830           practical use, reflecting updated sortkey constant design.
831           Especially level 4 weight is split to 4 arrays that are merged in
832           the last stage of GetSortKey().
833         * Collator.cs : thus SortKeyBuffer is removed from here.
834           Additionally, removed some extraneous bits in other classes.
835         * Collation-notes.txt : Some editorial fixes. Added information on
836           Korean matter (how to compute Hangle Syllables / Hangul Jamo cannot
837           be stored in simple byte arrays).
838         * CodePointIndexer.cs,
839           create-collation-element-table.cs,
840           CollationElementTable.template,
841           NormalizationTableUtil.cs : short CodePointIndexer method names.
842         * create-mscompat-collation-table.cs : Additional info on why some
843           meaningful characters are ignored in Windows (Unicode version
844           difference). Removed U+070F from special check (was extraneous).
845
846 2005-06-06  Atsushi Enomoto  <atsushi@ximian.com>
847
848         * MSCompatUnicodeTable.template:
849           Moved body implementation to table creator and put those bool
850           results into an array.
851         * create-mscompat-collation-table.cs :
852           So imported those methods. Modified array output to emit "0x"
853           only for more than 9.
854         * create-normalization-source.cs : ditto on "0x" output matter.
855         * CollationDataStructures.txt : so now it holds ignorableFlags.
856
857 2005-06-03  Atsushi Enomoto  <atsushi@ximian.com>
858
859         * Collation-notes.txt, CollationDataStructures.txt :
860           separate document for data structure design.
861
862 2005-06-03  Atsushi Enomoto  <atsushi@ximian.com>
863
864         * create-mscompat-collation-table.cs : added culture-dependent CJK
865           table creation. It uses CLDR as its basis. (Culture independent CJK
866           is not ready BTW).
867         * Makefile : added CLDR archive downloading support.
868         * MSCompatUnicodeTable.template : tiny renamings.
869         * Collation-notes.txt : additional CJK info.
870
871 2005-06-02  Atsushi Enomoto  <atsushi@ximian.com>
872
873         * Collation-notes.txt, create-mscompat-collation-table.cs :
874           added secondary weight support for BlahNumber characters.
875
876 2005-06-01  Atsushi Enomoto  <atsushi@ximian.com>
877
878         * downloaded : added directory. All downloaded files are stored here.
879         * Makefile : use "downloaded" directory.
880           Added more auto-download stuff.
881         * create-mscompat-collation-table.cs :
882           Added Japanese square kana support.
883
884 2005-06-01  Atsushi Enomoto  <atsushi@ximian.com>
885
886         * Collation-notes.txt : added Estrangela (ancient Syriac) and Thaana.
887         * create-mscompat-collation-table.cs : added support for Arabic abjad,
888           Estrangela and Thaana.
889         * MSCompatUnicodeTable.template : removed BOM.
890
891 2005-05-31  Atsushi Enomoto  <atsushi@ximian.com>
892
893         * Collation-notes.txt : wrong comment cleanup and spelling fixes.
894         * create-mscompat-collation-table.cs : added diacritic support for
895           Latin letters (as long as covered in primary weight).
896
897 2005-05-31  Atsushi Enomoto  <atsushi@ximian.com>
898
899         * Makefile : minor fixes. Added warning lines to generated sources.
900
901 2005-05-31  Atsushi Enomoto  <atsushi@ximian.com>
902
903         * create-char-mapping-source.cs :
904           Removed ToWidthInsensitive() generation.
905
906 2005-05-31  Atsushi Enomoto  <atsushi@ximian.com>
907
908         * create-mscompat-collation-table.cs : Now it dumps level1 to 3 values.
909           ToWidthInsensitive() is implemented here, using an array (which is
910           to be optimized using CodePointIndexer).
911         * MSCompatUnicodeTable.cs : renamed as MSCompatUnicodeTable.template
912         * MSCompatUnicodeTable.template : now it is used to generate
913           MSCompatUnicodeTable.cs which got ready to be used.
914         * Makefile : added MSCompatUnicodeTable.cs build support. Now it
915           supports "make normalization" and "make collation".
916
917 2005-05-30  Atsushi Enomoto  <atsushi@ximian.com>
918
919         * Collation-notes.txt : Description on ICU is very incorrect. Now it
920           became more rational and sane.
921         * create-mscompat-collation-table.cs : fixed some indexes.
922         * Makefile : added "mstablegen" target.
923         * MSCompatUnicodeTable.cs : removed GetPrimaryWeight(). Minor fix.
924
925 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
926
927         * Collation-notes.txt : more analysis on "letters".
928         * create-mscompat-collation-table.cs : more proof of concepts.
929
930 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
931
932         * Collation-notes.txt : more info. Started letter sortkey analysis
933           (some of other stuff are really non-understandable right now.)
934         * create-mscompat-collation-table.cs : table generator proof-of-
935           concept source (not compilable).
936         * MSCompatUnicodeTable.cs : moved some code to the new source.
937           Some more fixes.
938
939 2005-05-20  Atsushi Enomoto  <atsushi@ximian.com>
940
941         * Collation-notes.txt : started level 2 weight analysis.
942
943 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
944
945         * Collation-notes.txt : Additional information on how to create
946           level 3 tables.
947         * MSCompatUnicodeTable.cs : implemented part of GetLevel3Weight().
948
949 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
950
951         * Collation-notes.txt : More case weight (level 3) analysis. I'm
952           likely to just write table generator.
953
954 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
955
956         * MSCompatUnicodeTable.cs : part of level 4 weight implementation.
957
958 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
959
960         * Collation-notes.txt :
961           Added task list.
962           Revised comparison methods; backward iteration is possible.
963           More on char-by-char comparison.
964           Level 4 comparison is actually a bit more complex.
965           Misc corrections.
966         * Collator.cs : some conceptual updates wrt above.
967
968 2005-05-17  Atsushi Enomoto  <atsushi@ximian.com>
969
970         * Collation-notes.txt : Japanese voice mark is level 2, and Hangul
971           properties are level 3.
972
973 2005-05-17  Atsushi Enomoto  <atsushi@ximian.com>
974
975         * Collation-notes.txt : Make it more readable. More analysis on
976           level 3 and 4 sortkey structures.
977         * Collator.cs : some compilation fixes (not compilable yet).
978
979 2005-05-16  Atsushi Enomoto  <atsushi@ximian.com>
980
981         * Collation-notes.txt : Analysis on variable-weighting (level 5)
982           sortkey format.
983         * Collator.cs : updated corresponding part of level 5, and more.
984
985 2005-05-13  Atsushi Enomoto  <atsushi@ximian.com>
986
987         * Collation-notes.txt : more updates.
988         * Collator.cs : rewrote from scratch. Some rough sketch for sortkey
989           buffer, character iterator and collator methods. Not compiling.
990
991 2005-05-13  Atsushi Enomoto  <atsushi@ximian.com>
992
993         * Collator.cs : Am going to replace it with new one. No need for 
994           CompareOptions-dependent Comparer.
995
996 2005-05-13  Atsushi Enomoto  <atsushi@ximian.com>
997
998         * Collation-notes.txt : There seems a bit more complexity.
999
1000 2005-05-10  Atsushi Enomoto  <atsushi@ximian.com>
1001
1002         * Collation-notes.txt : more updates, being close to write sortkey
1003           generator code.
1004
1005 2005-05-09  Atsushi Enomoto  <atsushi@ximian.com>
1006
1007         * CompareInfoImpl.cs, Collator.cs : conceptual update
1008         * Collation-notes.txt : some corrections and additions.
1009         * Makefile : added LDML input (but it won't be used at all).
1010
1011 2005-04-28  Atsushi Enomoto  <atsushi@ximian.com>
1012
1013         * Collation-notes.txt : more updates.
1014
1015 2005-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1016
1017         * Collation-notes.txt : more updates.
1018
1019 2005-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1020
1021         * Collation-notes.txt : some updates.
1022         * create-mapping-char-source.cs : superscripts and subscripts are also
1023           ignored in IgnoreWidth comparison.
1024         * Makefile : tiny touch fix.
1025
1026 2005-04-25  Atsushi Enomoto  <atsushi@ximian.com>
1027
1028         * CompareInfoImpl.cs, Collator.cs : conceptual stuff (not working).
1029
1030 2005-04-25  Atsushi Enomoto  <atsushi@ximian.com>
1031
1032         * create-char-mapping-source.cs : Now it generates
1033           ToWidthInsensitive() from combining category <wide> and <narrow>.
1034         * MSCompatUnicodeTable.cs : added ToKanaTypeInsensitive() and
1035           ToWidthInsensitive() for IgnoreKanaType and IgnoreWidth.
1036
1037 2005-04-25  Atsushi Enomoto  <atsushi@ximian.com>
1038
1039         * README, LdmlReader.cs, DataStructures.txt : new files.
1040
1041 2005-04-25  Atsushi Enomoto  <atsushi@ximian.com>
1042
1043         * CodePointIndexer.cs,
1044           Collation-notes.txt,
1045           CollationElementTable.template,
1046           CollationElementTableUtil.cs,
1047           create-char-mapping-source.cs,
1048           create-collation-element-table.cs,
1049           create-combining-class-source.cs,
1050           create-normalization-source.cs,
1051           Makefile,
1052           MSCompatUnicodeTable.cs,
1053           Normalization.template,
1054           NormalizationTableUtil.cs : initial checkin (to private branch).
1055