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