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