1 2005-07-25 Atsushi Enomoto <atsushi@ximian.com>
3 * create-mscompat-collation-table.cs : Added C header output support.
5 2005-07-25 Atsushi Enomoto <atsushi@ximian.com>
7 * create-mscompat-collation-table.cs : FillLetterNFKD() could also be
8 applied to Cyrillic letters. Saved some of them.
10 2005-07-24 Atsushi Enomoto <atsushi@ximian.com>
12 * MSCompatUnicodeTable.cs : oh, ok, so we already have
13 GetManifestResourceInternal() ;-)
14 * managed-collation.patch : in Assembly.cs made that method internal.
16 2005-07-24 Atsushi Enomoto <atsushi@ximian.com>
18 * MSCompatUnicodeTable.cs : the pointer based icall code could be
19 also applicable for USE_MANAGED_RESOURCE mode.
21 2005-07-23 Atsushi Enomoto <atsushi@ximian.com>
23 * MSCompatUnicodeTable.cs : added icall support code (not enabled
24 unless the first line is commented out).
26 2005-07-22 Atsushi Enomoto <atsushi@ximian.com>
28 * create-mscompat-collation-table.cs,
29 MSCompatUnicodeTableUtil.cs,
30 MSCompatUnicodeTable.cs : Added resource version output (and ignore
31 in case of version mismatch). Removed obsolete, commented out code.
33 2005-07-22 Atsushi Enomoto <atsushi@ximian.com>
36 MSCompatUnicodeTable.cs,
37 create-mscompat-collation-table.cs : Now they use unmanaged pointers
38 instead of managed arrays.
39 * managed-collation.patch : Now it contains patch for IntPtrStream.cs
40 and Assembly.cs as well.
42 2005-07-22 Atsushi Enomoto <atsushi@ximian.com>
44 * MSCompatUnicodeTable.cs,
45 SimpleCollator.cs : Moved tailoring support classes to
46 MSCompatUnicodeTable.cs and drawn out from SimpleCollator.
47 Now that cjk and tailoring support are filled inside
48 MSCompatUnicodeTable, no managed array is exposed.
50 2005-07-22 Atsushi Enomoto <atsushi@ximian.com>
52 * create-mscompat-collation-table.cs,
54 MSCompatUnicodeTable.cs : Now it's not exposing collation table
55 internals as managed arrays (to switch to unmanaged pointers).
57 2005-07-22 Atsushi Enomoto <atsushi@ximian.com>
59 * create-mscompat-collation-table.cs : tiny nonspacing mark fix.
61 2005-07-21 Atsushi Enomoto <atsushi@ximian.com>
63 * create-mscompat-collation-table.cs : Fixed most of Greek mappings.
64 * MSCompatUnicodeTable.cs : don't lock string.
66 2005-07-21 Atsushi Enomoto <atsushi@ximian.com>
68 * create-mscompat-collation-table.cs : More Cyrillic diacritical fixes.
70 2005-07-21 Atsushi Enomoto <atsushi@ximian.com>
72 * create-mscompat-collation-table.cs : More Latin diacritical fixes.
74 2005-07-21 Atsushi Enomoto <atsushi@ximian.com>
76 * create-mscompat-collation-table.cs : There were still missing
77 math symbol mappings. Added several hacky diacritical weight for
80 2005-07-21 Atsushi Enomoto <atsushi@ximian.com>
82 * create-mscompat-collation-table.cs : fixed a few diacritical weight
83 on Cyrillic characters. Fixed ParseTailoringSource() to handle
84 non-heading escape sequence (\uXXXX) as expected.
86 2005-07-21 Atsushi Enomoto <atsushi@ximian.com>
88 * create-mscompat-collation-table.cs,
89 MSCompatUnicodeTableUtil.cs,
90 MSCompatUnicodeTable.cs : added more aggressive index limits for
91 table optimization at data size, in cost of speed.
93 2005-07-20 Atsushi Enomoto <atsushi@ximian.com>
95 * create-mscompat-collation-table.cs : fixed Arabic thirtial weight.
97 2005-07-20 Atsushi Enomoto <atsushi@ximian.com>
99 * create-mscompat-collation-table.cs : Mapping for hyphens and
100 punctuation are kinda finished. Rewrote batch mapping method to
101 collect all NFKD. Required modification on mapping is done.
103 2005-07-20 Atsushi Enomoto <atsushi@ximian.com>
105 * create-mscompat-collation-table.cs : minor mapping fixes on accent
106 marks and punctuations.
108 2005-07-20 Atsushi Enomoto <atsushi@ximian.com>
110 * create-mscompat-collation-table.cs : Fixed some MathSymbol mapping
111 and Box drawing mapping.
113 2005-07-19 Atsushi Enomoto <atsushi@ximian.com>
115 * create-mscompat-collation-table.cs : Fixed almost all numbers.
117 2005-07-19 Atsushi Enomoto <atsushi@ximian.com>
119 * create-mscompat-collation-table.cs : Symbol mappings are almost done.
120 Removed hack that gave dummy mappings to blank symbols.
122 2005-07-19 Atsushi Enomoto <atsushi@ximian.com>
124 * create-mscompat-collation-table.cs : more fix on arrows. Fix on box
125 drawings. Some code refactoring to eliminate hack.
127 2005-07-19 Atsushi Enomoto <atsushi@ximian.com>
129 * create-mscompat-collation-table.cs : Fixed some secondary weight
130 in Devanagari and arrows.
132 2005-07-19 Atsushi Enomoto <atsushi@ximian.com>
134 * create-mscompat-collation-table.cs : a set of tiny mapping fixes.
136 2005-07-19 Atsushi Enomoto <atsushi@ximian.com>
138 * create-mscompat-collation-table.cs : some diacritical fixes for
139 Latin. Added batch mapping method that considers computed
140 diacritical weight (for numbers).
142 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
144 * managed-collation.patch : forgot to add System.String patch.
146 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
148 * MSCompatUnicodeTable.cs : added resource existence check (required
149 for mscorlib transient time from the one without resources to the
152 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
154 * create-mscompat-collation-table.cs : fixed punctuations and hyphen
155 (shift) primary weight.
157 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
159 * create-mscompat-collation-table.cs : more nonspacing mark fixes.
160 Some non-basic Cyrillic diacritical weight fixes.
162 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
164 * create-mscompat-collation-table.cs : some Gurmukhi fixes on level 1
165 and level 3. Tiny Hangul weight fixes.
166 * MSCompatUnicodeTable.cs : U+30F5 and U+30F6 are small Japanese.
168 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
170 * create-mscompat-collation-table.cs : some normal characters who have
171 "narrow" NFKD mapping are regarded as "wide" and thus level 3 weight
172 values were different. Handle U+30FB as category A.
173 * MSCompatUnicodeTable.cs : U+30FB does not have special weight.
175 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
177 * create-mscompat-collation-table.cs : more diacritical weight fixes.
178 Removed some unused code.
180 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
182 * create-mscompat-collation-table.cs : Fixed some Thai and Arabic
185 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
187 * create-mscompat-collation-table.cs : Fixed Syriac nonspacing marks.
189 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
191 * create-mscompat-collation-table.cs : Fixed nonspacing marks in
192 Malayalam, Thai and Lao. Removed extraneous hack.
194 2005-07-15 Atsushi Enomoto <atsushi@ximian.com>
196 * SimpleCollator.cs : rewrote LastIndexOf() to handle source extenders.
197 Some refactoring on IndexOf() code. Removed unused Matches().
198 * Collation-notes.txt : some methods needed to be reimplemented, so
199 rewrote the description.
201 2005-07-14 Atsushi Enomoto <atsushi@ximian.com>
203 * SimpleCollator.cs : rewrote IsSuffix() to use CompareInternal().
204 Thus supported extenders in IsSuffix().
206 2005-07-14 Atsushi Enomoto <atsushi@ximian.com>
208 * SimpleCollator.cs : more IsSuffix() simplification, but it will be
209 stopped here since it cannot handle extenders (implementing new
212 2005-07-14 Atsushi Enomoto <atsushi@ximian.com>
214 * SimpleCollator.cs : simplified IsSuffix() code.
216 2005-07-14 Atsushi Enomoto <atsushi@ximian.com>
218 * SimpleCollator.cs : Fixed IndexOf() and LasIndexOf() to search the
219 entire replacement string if char target was an expansion.
220 IsSuffix() was using a method for IsPrefix() which was incorrect.
221 Removed old IsPrefix() code.
223 2005-07-14 Atsushi Enomoto <atsushi@ximian.com>
225 * SimpleCollator.cs : IndexOf() was incorrectly sharing the same
226 byte[] field in different areas of code. Now extenders in both
227 source and target really work in IndexOf().
229 2005-07-14 Atsushi Enomoto <atsushi@ximian.com>
231 * create-mscompat-collation-table.cs : fixed U+FF9F diacritical weight.
232 * SimpleCollator.cs : handle U+FF9E and U+FF9F as extenders.
234 2005-07-14 Atsushi Enomoto <atsushi@ximian.com>
236 * SimpleCollator.cs : Now FilterExtender() handles all extender
237 support. IndexOf() and LastIndexOf() now supports extenders.
238 IndexOf() and LastIndexOf() did not proceed contraction source
239 length as expected. Tiny refactoring on private IsPrefix() to take
242 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
244 * SimpleCollator.cs : when restoring from expansion, go back to the
245 top of the loop (to avoid index out of range).
246 Now IsPrefix() is implemented to reuse Compare() and thus it now
247 supports extender as well.
248 * Collation-notes.txt : status update. Deleted optimization part in
249 status section (it is duplicate).
251 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
253 * SimpleCollator.cs : some code reordering.
254 * create-mscompat-collation-table.cs : it was still missing U+3094.
256 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
258 * SimpleCollator.cs : Compare() now supports extender (e.g. U+39FC).
260 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
262 * SimpleCollator.cs : In GetSortKey(), don't update previousChar when
263 it is not primary (e.g. don't "extend" diacritical mark).
265 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
267 * managed-collation.patch : CompareInfo.Compare() should consider
268 the possibilities that non-empty string might be actually empty
269 in culture-sensitive context.
271 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
273 * SimpleCollator.cs : IndexOf() and LastIndexOf() returns start when
274 target is "empty" (in culture-sensitive context).
276 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
278 * SimpleCollator.cs : In IndexOf() and LastIndexOf(), skip ignorable
279 characters in target string.
281 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
283 * SimpleCollator.cs : When IgnoreWidth is specified, all Kana
284 characters are regarded as half-width.
285 Even though IgnoreWidth is specified, it should not ignore case.
286 For special weight comparison, the default values (E4) are bigger
287 than non-default values.
288 * SortKeyBuffer.cs : It should save LCID and original string.
289 * create-mscompat-collation-table.cs : For Japanese half-width kana,
290 it should not be counted in widthCompat map since IgnoreWidth does
291 not really ignore those differences.
293 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
295 * create-mscompat-collation-table.cs : Fixed missing Japanese bits.
297 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
299 * create-mscompat-collation-table.cs :
300 tiny diacritical weight fix for U+20D0-U+20E1.
302 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
304 * create-mscompat-collation-table.cs : ja CJK ideograph got completed.
306 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
308 * create-mscompat-collation-table.cs : Fixed CJK custom Japanese
309 mapping. It (maybe as well as other CJK tables) mixes NFKD. For
310 Japanese, modified NFKD table (because of Windows lame design).
312 2005-07-13 Atsushi Enomoto <atsushi@ximian.com>
314 * Makefile : added MONO_USE_MANAGED_COLLATION=no almost everywhere.
315 * MSCompatUnicodeTable.cs : FillCJK() was not invoked. Now it is
316 invoked at any time it is required.
317 * SimpleCollator.cs : call FillCJK() above in .ctor().
318 * MSCompatUnicodeTableUtil.cs : CJK range was wider.
319 * create-mscompat-collation-table.cs : CJK binary was missing the
320 length. CJK remapping is being moved to ModifyUnidata().
321 For cjk-ja mapping, we have to consider compat characters to be
322 added to the map, besides the raw UCA table.
324 2005-07-12 Atsushi Enomoto <atsushi@ximian.com>
326 * SortKeyBuffer.cs : Fixed shift level computation to match w/ Windows.
328 2005-07-12 Atsushi Enomoto <atsushi@ximian.com>
330 * SimpleCollator.cs : fixed LastIndexOf() to handle _target's_
331 contraction as expected. Fixed Compare() to save s2's contraction
333 * TestDriver.cs :added LastIndexOf() tester w/ indexes.
335 2005-07-12 Atsushi Enomoto <atsushi@ximian.com>
337 * managed-collation.patch : Fixed IsPrefix() and IsSuffix(). They
338 incorrectly use Compare().
339 * TestDriver.cs : more moved to nunit tests.
341 2005-07-12 Atsushi Enomoto <atsushi@ximian.com>
343 * SimpleCollator.cs : several fixes on Compare().
344 - Ignorable characters are skippted at the top of the loop.
345 - IgnoreNonSpace is checked to avoid extraneous level 2 comparison.
346 - In such case that s1 index is increased while s2 contraction is
347 replaced, s1 is inconsistently proceeded (bug).
348 - IsIgnorable() now also checks IgnoreNonSpace.
349 - Fixed FilterOptions() that does not work for IgnoreWidth at all.
350 * TestDriver.cs : now some are moved to nunit tests.
351 * Collation-notes.txt : minor todo update.
353 2005-07-11 Atsushi Enomoto <atsushi@ximian.com>
355 * SimpleCollator.cs : Compare() was ignoring such case that both
356 entire strings have '-' to be compared.
357 * Collation-notes.txt : more status updates.
358 * TestDriver.cs : added '-' use cases.
360 2005-07-08 Atsushi Enomoto <atsushi@ximian.com>
362 * SimpleCollator.cs : to be same as other buggy part, it now handles
363 U+3005, U+3031 and U+3032 as buggy as Windows. It just repeats
365 Fixed GetSortKey(): if the repeater is U+3005, second weight is 5.
366 * create-mscompat-collation-table.cs : dummy values for extenders.
368 2005-07-08 Atsushi Enomoto <atsushi@ximian.com>
370 * SimpleCollator.cs : Special weight fixes on GetSortKey(). Dash type
371 should be computed from ExtenderType, and voice mark weight should
373 * MSCompatUnicodeTable.cs : added tiny comment.
375 2005-07-08 Atsushi Enomoto <atsushi@ximian.com>
377 * SortKey.cs : It borked when MONO_USE_MANAGED_COLLATION is not yes.
378 * SimpleCollator.cs : support for extender (U+309D etc.).
380 2005-07-08 Atsushi Enomoto <atsushi@ximian.com>
382 * create-mscompat-collation-table.cs : some punct/symbols fix.
383 * managed-collation.patch : new (and temporary) file to support
384 managed collation in mscorlib.
385 * README : described how to use managed collation.
387 2005-07-08 Atsushi Enomoto <atsushi@ximian.com>
389 * create-mscompat-collation-table.cs : Further Cyrillic fixes. Handle
390 U+482-4C8 (though needs diacritical fixes).
391 * MSCompatUnicodeTable.cs : tiny comment for alternative impl.
393 2005-07-08 Atsushi Enomoto <atsushi@ximian.com>
395 * create-mscompat-collation-table.cs : Reimplemented Cyrillic weight
396 computation code, since it looks like the same way as Latin letters
397 have. Thus removed all other approach (UCA, by letter name).
399 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
401 * create-mscompat-collation-table.cs : diacritical fix for "double-
402 struck". Syriac nonspacing fixes.
404 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
406 * create-mscompat-collation-table.cs : more math symbol weight fixes.
408 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
410 * create-mscompat-collation-table.cs : fixed Hebrew character sortkeys.
412 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
414 * create-mscompat-collation-table.cs : math symbols U+25A0-U+2600 are
415 implemented (no stub). Some other fixes on category 8-A.
417 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
419 * create-mscompat-collation-table.cs : some minor fixes on Arabic,
420 Korean and Japanese sortkey weights.
422 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
424 * create-mscompat-collation-table.cs : More diacritical fixes.
425 Georgian characters do not have level 2 weights but level 3.
427 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
429 * create-mscompat-collation-table.cs : Roman numeral characters
430 have diacritical weight. quick hack for control signs (U+2400..)
433 2005-07-06 Atsushi Enomoto <atsushi@ximian.com>
435 * create-mscompat-collation-table.cs : improving Latin mappings.
436 Setting non-ASCII Latin characters' primary weight between those
437 ASCII characters, and setting diacritical weight (hacky).
438 * MSCompatUnicodeTable.cs :
439 Kanatype check: fixed (voice marks) and improved (comparison order).
441 2005-07-06 Atsushi Enomoto <atsushi@ximian.com>
443 * create-mscompat-collation-table.cs : more diacritical fixes.
444 primary weight fixes on punctuations in category 07.
446 2005-07-06 Atsushi Enomoto <atsushi@ximian.com>
448 * create-mscompat-collation-table.cs : several diacritical fixes.
449 * TestDriver.cs : sortkey dumper should use StringSort.
451 2005-07-05 Atsushi Enomoto <atsushi@ximian.com>
453 * SimpleCollator.cs : fixed incorrect indexer setup. Optimized
454 GetContraction() call a bit.
456 2005-07-05 Atsushi Enomoto <atsushi@ximian.com>
458 * create-mscompat-collation-table.cs : fixed incorrect level 2
460 * MSCompatUnicodeTable.cs : remove debug line.
462 2005-07-05 Atsushi Enomoto <atsushi@ximian.com>
464 * MSCompatUnicodeTableUtil.cs,
465 MSCompatUnicodeTable.cs,
467 create-mscompat-collation-table.cs : made some members internal and
468 accessible from other classes. Many indexes could be 0 by default.
469 * SimpleCollator.cs : optimizations. avoid method call.
471 2005-07-05 Atsushi Enomoto <atsushi@ximian.com>
473 * Collation-notes.txt : more updates.
474 * SimpleCollator.cs : Added quick check for Ordinal comparison.
475 Fixed special weight comparison. It cannot be customizable in the
476 implementation (and it won't be harmful).
477 * mono-tailoring-source.txt : thus updated comment.
479 2005-07-05 Atsushi Enomoto <atsushi@ximian.com>
481 * SimpleCollator.cs : Compare() was missing French sort support.
482 * TestDriver.cs : added example case.
484 2005-07-05 Atsushi Enomoto <atsushi@ximian.com>
486 * Collation-notes.txt : updated status. Eliminated descriptions on
487 "iterator" (I avoided it for performance concern). Fixed misc.
488 incorrect descriptions.
490 2005-07-05 Atsushi Enomoto <atsushi@ximian.com>
492 * Collator.cs : Now that SimpleCollator became feature complete, it is
495 2005-07-05 Atsushi Enomoto <atsushi@ximian.com>
497 * SimpleCollator.cs : implemented decent Compare() that immediately
498 stops at first primary difference.
500 2005-07-04 Atsushi Enomoto <atsushi@ximian.com>
502 * SimpleCollator.cs : indexers might return -1.
504 2005-07-04 Atsushi Enomoto <atsushi@ximian.com>
506 * SimpleCollator.cs : IsPrefix() and IsSuffix() optimization code was
507 buggy (length check for source was missing).
509 2005-07-04 Atsushi Enomoto <atsushi@ximian.com>
511 * create-mscompat-collation-table.cs : Fixed tailoring table output
512 to be in correct and countable order. Now if tailoring alias was not
513 found, just stop the build.
514 * MSCompatUnicodeTable.cs : several build fixes. Now it works to read
516 * mono-tailoring-source.txt : commented out CJK aliases that miss
518 * Makefile : needed further filename fixes.
520 2005-07-04 Atsushi Enomoto <atsushi@ximian.com>
522 * MSCompatUnicodeTable.cs : renamed from MSCompatUnicodeTable.template
523 (now it is working as a standalone file).
524 * Makefile : renamed generated file as MSCompatUnicodeTableGenerated.cs
525 (the generator now creates both binary resources and C# source).
527 2005-07-04 Atsushi Enomoto <atsushi@ximian.com>
529 * create-mscompat-collation-table.cs : Now it generates binary
530 resources (to parent directory).
531 * MSCompatUnicodeTable.template : added conditional code that fills
532 collation tables from manifest resources.
533 * Makefile : remove collation table binaries as well on "make clean".
534 Removed extraneous dependency.
536 2005-07-01 Atsushi Enomoto <atsushi@ximian.com>
538 * MSCompatUnicodeTable.template,
539 SimpleCollator.cs : removed extraneous GetExpansion().
541 2005-07-01 Atsushi Enomoto <atsushi@ximian.com>
543 * SimpleCollator.cs : IsSuffix() also supports contractions.
544 * TestDriver.cs : IsSuffix() example contraction cases.
546 2005-07-01 Atsushi Enomoto <atsushi@ximian.com>
548 * SimpleCollator.cs : reverted IsSuffix() to return bool (to match w/
549 what current IsPrefix() does). For expansion of target, IsPrefix()
550 should check the no-match case that expansion is longer than input.
551 Some refactory on IsPrefix().
552 Added GetContractionTal() for IsSuffix() (not used yet).
554 2005-07-01 Atsushi Enomoto <atsushi@ximian.com>
556 * TestDriver.cs : added IsPrefix() expansion cases.
557 * SimpleCollator.cs : IsPrefix() now supports contractions (with much
558 of complexity), and it now returns bool again.
559 IndexOf() for replacement should make use of IndexOfPrimitiveChar()
560 since expansions won't be expanded recursively.
562 2005-07-01 Atsushi Enomoto <atsushi@ximian.com>
564 * SimpleCollator.cs : commonized character comparison in IsPrefix()
565 and IsSuffix(). csc compile fix.
566 * CompareInfoImpl.cs : deleted.
568 2005-06-30 Atsushi Enomoto <atsushi@ximian.com>
570 * TestDriver.cs : added SimpleCollator.ctor() sanity check.
571 Added replacement contraction example.
572 * SimpleCollator.cs : Now IndexOf() and LastIndexOf() support
573 contraction in source string. Extracted matching code to Matches().
574 Replacement contraction was including extraneous '\x0'.
576 2005-06-30 Atsushi Enomoto <atsushi@ximian.com>
578 * Collation-notes.txt : updated status.
579 * CollationDataStructures.txt : tiny fixes.
580 * SimpleCollator.cs :
581 Renamed alias Util to UUtil (MS sys.enterprisesvc has sucky global
582 namespace Util and csc borked).
583 GetContraction was incorrectly returning first item.
584 Private IsPrefix() now returns int (but it might not be in real use).
585 Extracted simple char comparison to CompareCharSimple().
586 IndexOf() and LastIndexOf() now fully handle contractions (both
587 binary key and string replacement) in "target" (for "s" not yet).
588 * TestDriver.cs : be more verbose.
589 * mono-tailoring-source.txt : added comment.
590 * MSCompatUnicodeTable.template :
591 Renamed alias Util to UUtil (MS sys.enterprisesvc has sucky global
593 2005-06-30 Atsushi Enomoto <atsushi@ximian.com>
595 * create-mscompat-collation-table.cs : compute COMBINING blah marks as
596 well as those characters WITH blah.
597 * TestDriver.cs : added combining sortkey cases.
599 2005-06-30 Atsushi Enomoto <atsushi@ximian.com>
601 * mono-tailoring-source.txt : fixed description on '*' in sortkeys.
602 * SimpleCollator.cs : Now it fully uses tailoring info. Fixed
603 contraction search that worked only when string is contraction.
604 Removed commented code. Minor refactoring.
605 * TestDriver.cs : added example that uses "ZS" in Hungarian sorting.
607 2005-06-29 Atsushi Enomoto <atsushi@ximian.com>
609 * create-mscompat-collation-table.cs,
610 * mono-tailoring-source.txt : removed extraneous level 4 sortkey
611 which cannot be supported.
612 * SimpleCollator.cs : added GetContraction() and used in some places.
613 Now CompareOptions is set only once. Reordered some code (e.g.
614 ignorable check -> get compat char -> compare).
616 2005-06-29 Atsushi Enomoto <atsushi@ximian.com>
618 * SimpleCollator.cs : sort tailoring tables before actual usage.
619 Support diacritical remappings (it is customized collation rule
620 which does not exist in UCA).
622 2005-06-29 Atsushi Enomoto <atsushi@ximian.com>
624 * SimpleCollator.cs : build culture specific tailoring table from
625 TailoringInfo and unified data array.
626 * create-mscompat-collation-table.cs : Added null termination to
627 sortkey map tailorings (mostly to save my eyes).
628 * MSCompatUnicodeTable.template : added public TailoringValues.
630 2005-06-29 Atsushi Enomoto <atsushi@ximian.com>
632 * SortKeyBuffer.cs : handle special weight (category 06) characters.
633 * Collation-notes.txt : Updated description on special weight (it was
635 * TestDriver.cs : added special weight cases.
637 2005-06-29 Atsushi Enomoto <atsushi@ximian.com>
639 * MSCompatUnicodeTable.template : added GetTailoringInfo().
640 * SimpleCollator.cs : Now tailoring information is acquired and used.
641 (FrenchSort is supported but Compare() won't work expectedly since
642 the table is still incomplete for those diacritical marks).
643 * SortKeyBuffer.cs : On reversing diacritical weights, it should
644 ignore zeros. Reset() should reset frenchSorted flag.
646 2005-06-28 Atsushi Enomoto <atsushi@ximian.com>
648 * create-mscompat-collation-table.cs : Further fixes on Jamo,
649 diacritical weights by character name, and *Numbers primary weights.
651 2005-06-28 Atsushi Enomoto <atsushi@ximian.com>
653 * create-mscompat-collation-table.cs : More fix on Devanagari,
654 Gujarati, Oliya, Tamil and Lao sortkeys.
656 2005-06-28 Atsushi Enomoto <atsushi@ximian.com>
658 * create-mscompat-collation-table.cs : Fixed Georgian, Thai, Gurmukhi
661 2005-06-28 Atsushi Enomoto <atsushi@ximian.com>
663 * create-mscompat-collation-table.cs : Fixed Thai character primary
664 and secondary values. Fixed Thaana letters. Added more LAMESPEC
665 CJK compat. Fixed some circled CJK secondary weight.
666 Hacked some nonspacing mark sortkey value adjustment.
668 2005-06-28 Atsushi Enomoto <atsushi@ximian.com>
670 * create-mscompat-collation-table.cs : CP932.TXT was not parsed as
671 expected. JIS ordering was incorrect. OtherNumbers that represents
672 10 or more values were incorrectly computed the offset. Some Hangul
673 compat characters has different offset.
675 2005-06-28 Atsushi Enomoto <atsushi@ximian.com>
677 * create-mscompat-collation-table.cs : Fixed 0x8 category characters.
678 Added hack for need-to-be-fixed characters to fall into 0xA category.
679 * create-collation-element-table.cs : previous checkin seem failed :(
680 * README: updated a bit.
682 2005-06-24 Atsushi Enomoto <atsushi@ximian.com>
684 * CodePointIndexer.cs :
685 removed extraneous switch (I could use empty array for that need).
686 * CollationElementTableUtil.cs : primary weight type became ushort.
687 * create-collation-element-table.cs : several bugfixes.
688 collElem should be int. It was skipping most of entries because of
689 incorrect string tokenization.
691 2005-06-23 Atsushi Enomoto <atsushi@ximian.com>
693 * create-mscompat-collation-table.cs : handle some Jamo NKFD.
695 2005-06-23 Atsushi Enomoto <atsushi@ximian.com>
697 * SimpleCollator.cs : forgot to commit in the last checkin.
698 * create-mscompat-collation-table.cs : fixed arabic shift weight chars.
699 * TestDriver.cs : switch table dumper and collator testing.
700 * SortKey.cs : for now comment out internal indexes (not in use).
702 2005-06-23 Atsushi Enomoto <atsushi@ximian.com>
704 * MSCompatUnicodeTable.template,
705 SimpleCollator.cs : support for culture dependent CJK table.
707 2005-06-23 Atsushi Enomoto <atsushi@ximian.com>
709 * create-mscompat-collation-table.cs,
710 MSCompatUnicodeTableUtil.cs : make CJK table more compact.
712 2005-06-22 Atsushi Enomoto <atsushi@ximian.com>
714 * SimpleCollator.cs : Fixed stupid index search when start != 0.
716 2005-06-21 Atsushi Enomoto <atsushi@ximian.com>
718 * SimpleCollator.cs : fixed my misunderstanding on LastIndexOf(). It
719 now starts from "start" and proceeds backward by "length".
720 * TestDriver.cs : fix warning.
722 2005-06-21 Atsushi Enomoto <atsushi@ximian.com>
724 * TestDriver.cs : more tests.
725 * SimpleCollator.cs : LastIndexOf() is not setting search length
726 on iteration. Quick workaround fro String.LastIndexOf() bug (maybe).
728 2005-06-21 Atsushi Enomoto <atsushi@ximian.com>
730 * create-normalization-source.cs : output propValue as uint.
732 2005-06-21 Atsushi Enomoto <atsushi@ximian.com>
734 * SortKey.cs : Now it is System.Globalization.SortKey.
735 To replace existing implementation, it now requires lcid and
736 CompareOptions. Added required members.
737 * SortKeyBuffer.cs : thus .ctor() requires LCID.
738 * SimpleCollator.cs : made required changes above.
740 2005-06-21 Atsushi Enomoto <atsushi@ximian.com>
742 * CodePointIndexer.cs : added CompressArray(). Now it requires two more
743 parameters for default index and codepoint.
744 * CollationElementTableUtil.cs,
745 NormalizationTableUtil.cs : required changes wrt above change.
746 * MSCompatUnicodeTableUtil.cs : added for several codepoint indexers.
747 * MSCompatUnicodeTable.template : Now it uses codepoint indexer.
748 * create-mscompat-collation-table.cs : Now it outputs compressed array.
749 * Makefile : now collation requires MSCompatUnicodeTableUtil.cs
751 2005-06-21 Atsushi Enomoto <atsushi@ximian.com>
753 * SimpleCollator.cs :
754 Implemented IsSuffix() and LastIndexOf().
755 Several fixes on index > 0 cases.
756 * TestDriver.cs : sample IsSuffix() and LastIndexOf() usage and more.
758 2005-06-21 Atsushi Enomoto <atsushi@ximian.com>
760 * Collation-notes.txt : updated (status, impl. classes).
761 * MSCompatUnicodeTable.cs : Korean Jamo are not really expansions.
763 2005-06-21 Atsushi Enomoto <atsushi@ximian.com>
765 * SimpleCollator.cs : implemented IndexOf(string,string,CompareOptions)
766 and IsPrefix(). Tiny code refactory.
767 * TestDriver.cs : sample IsPrefix() and IndexOf() usage.
768 * MSCompatUnicodeTable.cs : tiny refactory for CodePointIndexer use.
770 2005-06-20 Atsushi Enomoto <atsushi@ximian.com>
772 * SimpleCollator.cs :
773 IndexOf(string, char, CompareOptions) implementation.
774 * TestDriver.cs : sample IndexOf() usage.
776 2005-06-20 Atsushi Enomoto <atsushi@ximian.com>
778 * create-mscompat-collation-table.cs : was missing most important
779 kind of blocks - equivalent expansions (e.g. invariant mappings).
780 More readable mappings.
782 2005-06-20 Atsushi Enomoto <atsushi@ximian.com>
784 * mono-tailoring-source.txt : new file. It describes tailoring
785 information. Basically examined under .NET 1.x.
786 * create-mscompat-collation-table.cs : consume the file above.
787 * MSCompatUnicodeTable.template : now tailorings is not a stub.
788 * CollationDataStructures.txt : minor fixes.
790 SimpleCollator.cs : added FrenchSort support.
791 * Collation-notes.txt : added description on Latin primary weights.
792 * ldml-limited.rng : added note.
793 * create-tailorings.cs : added note. more serialization (but won't be
796 2005-06-17 Atsushi Enomoto <atsushi@ximian.com>
798 * SortKeyBuffer.cs : non-primary character is added to previous
800 * TestDriver.cs : added example case of above.
802 2005-06-17 Atsushi Enomoto <atsushi@ximian.com>
804 * SimpleCollator.cs : IgnoreSymbols support.
805 * TestDriver.cs : compilation fix. IgnoreSymbols example.
806 * create-mscompat-collation-table.cs : more Hangul fixes.
808 2005-06-17 Atsushi Enomoto <atsushi@ximian.com>
810 * create-mscompat-collation-table.cs : more Hangul fixes.
811 * SortKey.cs : it will replace sys.globalization.SortKey. It has
812 some internal members.
813 * SortKeyBuffer.cs : now it uses SortKey instead of byte[].
814 * SimpleCollator.cs : CompareOptions support. However I don't think
815 it will be developed anymore since SortKey never enables IndexOf().
816 * TestDriver.cs : a few CompareOptions cases.
818 2005-06-16 Atsushi Enomoto <atsushi@ximian.com>
820 * SimpleCollator.cs : simple collator implementation that just will
821 use GetSortKey() for all its basis.
822 * TestDriver.cs : sample code that uses this collator set.
823 * MSCompatUnicodeTable.template : removed test driver from here.
825 2005-06-16 Atsushi Enomoto <atsushi@ximian.com>
827 * create-mscompat-collation-table.cs : Hangul fixes.
828 Now less than 300 characters that does not have sortkey weights.
829 * MSCompatUnicodeTable.template : added FIXME info for Hangul Jamo.
831 2005-06-16 Atsushi Enomoto <atsushi@ximian.com>
833 * create-mscompat-collation-table.cs : Added control picture mappings.
834 Minor primary weight fixes.
836 2005-06-16 Atsushi Enomoto <atsushi@ximian.com>
838 * create-mscompat-collation-table.cs : Added mappings for box
841 2005-06-16 Atsushi Enomoto <atsushi@ximian.com>
843 * create-mscompat-collation-table.cs : Added mappings for arrows.
845 2005-06-15 Atsushi Enomoto <atsushi@ximian.com>
847 * create-mscompat-collation-table.cs : added support for letterlike
848 characters and squared CJK compatibility characters, ordered by
849 character names (0x0E category).
850 * Collation-notes.txt : added description on that.
852 2005-06-15 Atsushi Enomoto <atsushi@ximian.com>
854 * MSCompatUnicodeTable.template : Now expansions are simulated.
855 * create-mscompat-collation-table.cs : filled Korean number level2.
856 Reordered some code blocks to fill correct diacritical differences.
857 * Collation-notes.txt : some corrections and minor additions.
859 2005-06-15 Atsushi Enomoto <atsushi@ximian.com>
861 * MSCompatUnicodeTable.template :
862 Now dumper test driver uses SortKeyBuffer for dogfooding.
863 * create-mscompat-collation-table.cs : some diacritical level fixes
864 (with non-working extra latin check).
865 * SortKeyBuffer.cs : several fixes to get working as a practical code.
866 * Collator.cs : make it compilable, leaving things as NotImplemented.
868 2005-06-15 Atsushi Enomoto <atsushi@ximian.com>
870 * create-mscompat-collation-table.cs : some fixes on primary category
871 07 (miscellaneous symbols and punctuations).
873 2005-06-14 Atsushi Enomoto <atsushi@ximian.com>
875 * create-mscompat-collation-table.cs : more mapping fix on numbers,
876 letters, variable weight characters, circled Japanese and CJK.
877 * MSCompatUnicodeTable.template : fixed HasSpecialWeight() to be more
878 inclusive. Simplified dumper code.
880 2005-06-14 Atsushi Enomoto <atsushi@ximian.com>
882 * create-mscompat-collation-table.cs : finished Hangul (both Jamo
883 and Syllables). sortkey dumper diff lines became 8000 from 30000.
885 2005-06-14 Atsushi Enomoto <atsushi@ximian.com>
887 * create-mscompat-collation-table.cs : added some nonspacing marks in
888 either correct or hacky way.
890 2005-06-13 Atsushi Enomoto <atsushi@ximian.com>
892 * create-mscompat-collation-table.cs : several improvements. Japanese
893 Kana support, Hebrew accents, Bengali nonspacing marks, sorting of
894 numeric characters, diacritically decorated latin alphabets. Fixed
895 some diacritical weights detection.
896 * MSCompatUnicodeTable.cs : tiny Japanese fix. Handle nonspacing
897 marks' primary weight as empty.
898 * Collation-notes.txt : some updates.
900 2005-06-13 Atsushi Enomoto <atsushi@ximian.com>
902 * create-mscompat-collation-table.cs : don't process nonexact NFKD
903 mapping as equivalent, however store CJK extensions into NFKD map
904 even if one does not strictly match.
905 Now am going to fill Hangul into tables (unlike UCA it does not look
906 possible to calculate sortkey value).
907 Fixed Cyrillic and Georgian UCA based orderings.
908 * MSCompatUnicodeTable.template : added CJK extension sortkey
911 2005-06-10 Atsushi Enomoto <atsushi@ximian.com>
913 * create-mscompat-collation-table.cs : Fixed latin alphabet support.
914 Added latin with diacritical and CJK extension.
915 * MSCompatUnicodeTable.cs : modified dumper code a bit (for my purpose).
917 2005-06-10 Atsushi Enomoto <atsushi@ximian.com>
919 * create-mscompat-collation-table.cs : now parses DerivedAge.txt (right
920 now not used thouth). Filled CJK ideograph, still not perfect.
921 Fixed number primary keys. NFKD numbers and CJK ideographs are now
922 considered, including brackets elimination.
923 * Makefile : now it downloads DerivedAge.txt.
924 * MSCompatUnicodeTable.template : added dummy code dumper. It computes
925 PrivateUse, Surrogate and Hangul Syllables.
926 * Collation-notes.txt : Noted that Hangul Syllables need more love.
928 2005-06-09 Atsushi Enomoto <atsushi@ximian.com>
930 * create-tailorings.cs : added configuration support. sort them.
931 I wonder if it is really usable. Having own format might be better.
932 * create-mscompat-collation-table.cs : fixing some sortkey numbers,
933 making closer to windows. Now it handles NFKD in some places.
934 * MSCompatUnicodeTable.template : Added dummy sortkey dumper driver.
935 * CollationDataStructures.txt : added description on tailoring
936 fields, though they are subject to change.
938 2005-06-07 Atsushi Enomoto <atsushi@ximian.com>
940 * create-tailorings.cs, ldml-limited.rng : new file.
941 * LdmlReader.cs : removed old file.
943 2005-06-07 Atsushi Enomoto <atsushi@ximian.com>
945 * SortKeyBuffer.cs : split from Collator.cs. Now it considers
946 practical use, reflecting updated sortkey constant design.
947 Especially level 4 weight is split to 4 arrays that are merged in
948 the last stage of GetSortKey().
949 * Collator.cs : thus SortKeyBuffer is removed from here.
950 Additionally, removed some extraneous bits in other classes.
951 * Collation-notes.txt : Some editorial fixes. Added information on
952 Korean matter (how to compute Hangle Syllables / Hangul Jamo cannot
953 be stored in simple byte arrays).
954 * CodePointIndexer.cs,
955 create-collation-element-table.cs,
956 CollationElementTable.template,
957 NormalizationTableUtil.cs : short CodePointIndexer method names.
958 * create-mscompat-collation-table.cs : Additional info on why some
959 meaningful characters are ignored in Windows (Unicode version
960 difference). Removed U+070F from special check (was extraneous).
962 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
964 * MSCompatUnicodeTable.template:
965 Moved body implementation to table creator and put those bool
966 results into an array.
967 * create-mscompat-collation-table.cs :
968 So imported those methods. Modified array output to emit "0x"
969 only for more than 9.
970 * create-normalization-source.cs : ditto on "0x" output matter.
971 * CollationDataStructures.txt : so now it holds ignorableFlags.
973 2005-06-03 Atsushi Enomoto <atsushi@ximian.com>
975 * Collation-notes.txt, CollationDataStructures.txt :
976 separate document for data structure design.
978 2005-06-03 Atsushi Enomoto <atsushi@ximian.com>
980 * create-mscompat-collation-table.cs : added culture-dependent CJK
981 table creation. It uses CLDR as its basis. (Culture independent CJK
983 * Makefile : added CLDR archive downloading support.
984 * MSCompatUnicodeTable.template : tiny renamings.
985 * Collation-notes.txt : additional CJK info.
987 2005-06-02 Atsushi Enomoto <atsushi@ximian.com>
989 * Collation-notes.txt, create-mscompat-collation-table.cs :
990 added secondary weight support for BlahNumber characters.
992 2005-06-01 Atsushi Enomoto <atsushi@ximian.com>
994 * downloaded : added directory. All downloaded files are stored here.
995 * Makefile : use "downloaded" directory.
996 Added more auto-download stuff.
997 * create-mscompat-collation-table.cs :
998 Added Japanese square kana support.
1000 2005-06-01 Atsushi Enomoto <atsushi@ximian.com>
1002 * Collation-notes.txt : added Estrangela (ancient Syriac) and Thaana.
1003 * create-mscompat-collation-table.cs : added support for Arabic abjad,
1004 Estrangela and Thaana.
1005 * MSCompatUnicodeTable.template : removed BOM.
1007 2005-05-31 Atsushi Enomoto <atsushi@ximian.com>
1009 * Collation-notes.txt : wrong comment cleanup and spelling fixes.
1010 * create-mscompat-collation-table.cs : added diacritic support for
1011 Latin letters (as long as covered in primary weight).
1013 2005-05-31 Atsushi Enomoto <atsushi@ximian.com>
1015 * Makefile : minor fixes. Added warning lines to generated sources.
1017 2005-05-31 Atsushi Enomoto <atsushi@ximian.com>
1019 * create-char-mapping-source.cs :
1020 Removed ToWidthInsensitive() generation.
1022 2005-05-31 Atsushi Enomoto <atsushi@ximian.com>
1024 * create-mscompat-collation-table.cs : Now it dumps level1 to 3 values.
1025 ToWidthInsensitive() is implemented here, using an array (which is
1026 to be optimized using CodePointIndexer).
1027 * MSCompatUnicodeTable.cs : renamed as MSCompatUnicodeTable.template
1028 * MSCompatUnicodeTable.template : now it is used to generate
1029 MSCompatUnicodeTable.cs which got ready to be used.
1030 * Makefile : added MSCompatUnicodeTable.cs build support. Now it
1031 supports "make normalization" and "make collation".
1033 2005-05-30 Atsushi Enomoto <atsushi@ximian.com>
1035 * Collation-notes.txt : Description on ICU is very incorrect. Now it
1036 became more rational and sane.
1037 * create-mscompat-collation-table.cs : fixed some indexes.
1038 * Makefile : added "mstablegen" target.
1039 * MSCompatUnicodeTable.cs : removed GetPrimaryWeight(). Minor fix.
1041 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
1043 * Collation-notes.txt : more analysis on "letters".
1044 * create-mscompat-collation-table.cs : more proof of concepts.
1046 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
1048 * Collation-notes.txt : more info. Started letter sortkey analysis
1049 (some of other stuff are really non-understandable right now.)
1050 * create-mscompat-collation-table.cs : table generator proof-of-
1051 concept source (not compilable).
1052 * MSCompatUnicodeTable.cs : moved some code to the new source.
1055 2005-05-20 Atsushi Enomoto <atsushi@ximian.com>
1057 * Collation-notes.txt : started level 2 weight analysis.
1059 2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
1061 * Collation-notes.txt : Additional information on how to create
1063 * MSCompatUnicodeTable.cs : implemented part of GetLevel3Weight().
1065 2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
1067 * Collation-notes.txt : More case weight (level 3) analysis. I'm
1068 likely to just write table generator.
1070 2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
1072 * MSCompatUnicodeTable.cs : part of level 4 weight implementation.
1074 2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
1076 * Collation-notes.txt :
1078 Revised comparison methods; backward iteration is possible.
1079 More on char-by-char comparison.
1080 Level 4 comparison is actually a bit more complex.
1082 * Collator.cs : some conceptual updates wrt above.
1084 2005-05-17 Atsushi Enomoto <atsushi@ximian.com>
1086 * Collation-notes.txt : Japanese voice mark is level 2, and Hangul
1087 properties are level 3.
1089 2005-05-17 Atsushi Enomoto <atsushi@ximian.com>
1091 * Collation-notes.txt : Make it more readable. More analysis on
1092 level 3 and 4 sortkey structures.
1093 * Collator.cs : some compilation fixes (not compilable yet).
1095 2005-05-16 Atsushi Enomoto <atsushi@ximian.com>
1097 * Collation-notes.txt : Analysis on variable-weighting (level 5)
1099 * Collator.cs : updated corresponding part of level 5, and more.
1101 2005-05-13 Atsushi Enomoto <atsushi@ximian.com>
1103 * Collation-notes.txt : more updates.
1104 * Collator.cs : rewrote from scratch. Some rough sketch for sortkey
1105 buffer, character iterator and collator methods. Not compiling.
1107 2005-05-13 Atsushi Enomoto <atsushi@ximian.com>
1109 * Collator.cs : Am going to replace it with new one. No need for
1110 CompareOptions-dependent Comparer.
1112 2005-05-13 Atsushi Enomoto <atsushi@ximian.com>
1114 * Collation-notes.txt : There seems a bit more complexity.
1116 2005-05-10 Atsushi Enomoto <atsushi@ximian.com>
1118 * Collation-notes.txt : more updates, being close to write sortkey
1121 2005-05-09 Atsushi Enomoto <atsushi@ximian.com>
1123 * CompareInfoImpl.cs, Collator.cs : conceptual update
1124 * Collation-notes.txt : some corrections and additions.
1125 * Makefile : added LDML input (but it won't be used at all).
1127 2005-04-28 Atsushi Enomoto <atsushi@ximian.com>
1129 * Collation-notes.txt : more updates.
1131 2005-04-26 Atsushi Enomoto <atsushi@ximian.com>
1133 * Collation-notes.txt : more updates.
1135 2005-04-26 Atsushi Enomoto <atsushi@ximian.com>
1137 * Collation-notes.txt : some updates.
1138 * create-mapping-char-source.cs : superscripts and subscripts are also
1139 ignored in IgnoreWidth comparison.
1140 * Makefile : tiny touch fix.
1142 2005-04-25 Atsushi Enomoto <atsushi@ximian.com>
1144 * CompareInfoImpl.cs, Collator.cs : conceptual stuff (not working).
1146 2005-04-25 Atsushi Enomoto <atsushi@ximian.com>
1148 * create-char-mapping-source.cs : Now it generates
1149 ToWidthInsensitive() from combining category <wide> and <narrow>.
1150 * MSCompatUnicodeTable.cs : added ToKanaTypeInsensitive() and
1151 ToWidthInsensitive() for IgnoreKanaType and IgnoreWidth.
1153 2005-04-25 Atsushi Enomoto <atsushi@ximian.com>
1155 * README, LdmlReader.cs, DataStructures.txt : new files.
1157 2005-04-25 Atsushi Enomoto <atsushi@ximian.com>
1159 * CodePointIndexer.cs,
1160 Collation-notes.txt,
1161 CollationElementTable.template,
1162 CollationElementTableUtil.cs,
1163 create-char-mapping-source.cs,
1164 create-collation-element-table.cs,
1165 create-combining-class-source.cs,
1166 create-normalization-source.cs,
1168 MSCompatUnicodeTable.cs,
1169 Normalization.template,
1170 NormalizationTableUtil.cs : initial checkin (to private branch).