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