void IDeserializationCallback.OnDeserialization(object sender) { if (UseManagedCollation) { collator = new SimpleCollator (new CultureInfo (culture)); } else { /* This will build the ICU collator, and store * the pointer in ICU_collator */ try { this.construct_compareinfo (icu_name); } catch { // ICU_collator=IntPtr.Zero; } } }
SimpleCollator GetCollator () { if (collator != null) return collator; if (collators == null) { Interlocked.CompareExchange (ref collators, new Dictionary<string, SimpleCollator> (StringComparer.Ordinal), null); } lock (collators) { if (!collators.TryGetValue (m_sortName, out collator)) { collator = new SimpleCollator (CultureInfo.GetCultureInfo (m_name)); collators [m_sortName] = collator; } } return collator; }
internal CompareInfo (CultureInfo ci) { this.culture = ci.LCID; if (UseManagedCollation) { lock (monitor) { if (collators == null) collators = new Hashtable (); collator = (SimpleCollator)collators [ci.LCID]; if (collator == null) { collator = new SimpleCollator (ci); collators [ci.LCID] = collator; } } } else { #if !MOONLIGHT this.icu_name = ci.IcuName; this.construct_compareinfo (icu_name); #endif } }
internal CompareInfo (CultureInfo ci) { this.culture = ci.LCID; this.m_name = ci.Name; if (UseManagedCollation) { lock (monitor) { if (collators == null) collators = new Dictionary<int, SimpleCollator> (); if (!collators.TryGetValue (ci.LCID, out collator)) { collator = new SimpleCollator (ci); collators [ci.LCID] = collator; } } } else { /* this.icu_name = ci.IcuName; this.construct_compareinfo (icu_name); */ } }
void Run () { LastIndexOf ("\u30D1\u30FC", "\u30A2", CompareOptions.IgnoreNonSpace); return; /* DumpSortKey ("AE"); DumpSortKey ("\u00C6"); DumpSortKey ("ABCABC", 5, 1, CompareOptions.IgnoreCase); DumpSortKey ("-"); DumpSortKey ("--"); DumpSortKey ("A-B-C"); DumpSortKey ("A\u0304"); DumpSortKey ("\u0100"); Compare ("1", "2"); Compare ("A", "a"); Compare ("A", "a", CompareOptions.IgnoreCase); Compare ("\uFF10", "0", CompareOptions.IgnoreWidth); Compare ("\uFF21", "a", CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); Compare ("12", "1"); Compare ("AE", "\u00C6"); Compare ("AB\u01c0C", "A\u01c0B\u01c0C", CompareOptions.IgnoreSymbols); Compare ("A\u0304", "\u0100"); // diacritical weight addition Compare ("ABCABC", 5, 1, "c", 0, 1, CompareOptions.IgnoreCase); Compare ("-d:NET_1_1", 0, 1, "-", 0, 1, CompareOptions.None); IndexOf ("ABC", '1', CompareOptions.None); IndexOf ("ABCABC", 'c', CompareOptions.IgnoreCase); IndexOf ("ABCABC", '\uFF22', CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); IndexOf ("ABCDE", '\u0117', CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); IndexOf ("ABCABC", 'B', 1, 5, CompareOptions.IgnoreCase); IndexOf ("\u00E6", 'a', CompareOptions.None); LastIndexOf ("ABC", '1', CompareOptions.None); LastIndexOf ("ABCABC", 'c', CompareOptions.IgnoreCase); LastIndexOf ("ABCABC", '\uFF22', CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); LastIndexOf ("ABCDE", '\u0117', CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); IsPrefix ("ABC", "c", CompareOptions.IgnoreCase); IsPrefix ("BC", "c", CompareOptions.IgnoreCase); IsPrefix ("C", "c", CompareOptions.IgnoreCase); IsPrefix ("EDCBA", "\u0117", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); IsPrefix ("ABC", "AB", CompareOptions.IgnoreCase); IsPrefix ("ae", "\u00E6", CompareOptions.None); IsPrefix ("\u00E6", "ae", CompareOptions.None); IsPrefix ("\u00E6", "a", CompareOptions.None); IsPrefix ("\u00E6s", "ae", CompareOptions.None); IsPrefix ("\u00E6", "aes", CompareOptions.None); IsPrefix ("--start", "--", CompareOptions.None); IsPrefix ("-d:NET_1_1", "-", CompareOptions.None); IsPrefix ("-d:NET_1_1", "@", CompareOptions.None); IsSuffix ("ABC", "c", CompareOptions.IgnoreCase); IsSuffix ("BC", "c", CompareOptions.IgnoreCase); IsSuffix ("CBA", "c", CompareOptions.IgnoreCase); IsSuffix ("ABCDE", "\u0117", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); IsSuffix ("\u00E6", "a", CompareOptions.None); IsSuffix ("\u00E6", "e", CompareOptions.None); IsSuffix ("\u00E6", "ae", CompareOptions.None); IsSuffix ("ae", "\u00E6", CompareOptions.None); IsSuffix ("e", "\u00E6", CompareOptions.None); IndexOf ("ABC", "1", CompareOptions.None); IndexOf ("ABCABC", "c", CompareOptions.IgnoreCase); IndexOf ("ABCABC", "\uFF22", CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); IndexOf ("ABCDE", "\u0117", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); IndexOf ("ABCABC", "BC", CompareOptions.IgnoreCase); IndexOf ("BBCBBC", "BC", CompareOptions.IgnoreCase); IndexOf ("ABCDEF", "BCD", 0, 3, CompareOptions.IgnoreCase); IndexOf ("-ABC", "-", CompareOptions.None); IndexOf ("--ABC", "--", CompareOptions.None); LastIndexOf ("ABC", "1", CompareOptions.None); LastIndexOf ("ABCABC", "c", CompareOptions.IgnoreCase); LastIndexOf ("ABCABC", "\uFF22", CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); LastIndexOf ("ABCDE", "\u0117", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); LastIndexOf ("ABCABC", "BC", CompareOptions.IgnoreCase); LastIndexOf ("BBCBBC", "BC", CompareOptions.IgnoreCase); LastIndexOf ("original", "rig", CompareOptions.None); LastIndexOf ("\u00E6", "ae", CompareOptions.None); LastIndexOf ("-ABC", "-", CompareOptions.None); LastIndexOf ("--ABC", "--", CompareOptions.None); */ coll = new SimpleCollator (new CultureInfo ("hu")); DumpSortKey ("ZSAZS1"); IsSuffix ("zs", "z", CompareOptions.None); IsSuffix ("zs", "s", CompareOptions.None); IsSuffix ("zs", "zs", CompareOptions.None); IsSuffix ("sz", "z", CompareOptions.None); IsSuffix ("sz", "s", CompareOptions.None); IsSuffix ("--ABC", "--", CompareOptions.None); IsSuffix ("ABC--", "--", CompareOptions.None); /* coll = new SimpleCollator (new CultureInfo ("")); Compare ("c\u00F4te", "cot\u00E9"); DumpSortKey ("c\u00F4te"); DumpSortKey ("cot\u00E9"); coll = new SimpleCollator (new CultureInfo ("fr")); Compare ("c\u00F4te", "cot\u00E9"); DumpSortKey ("c\u00F4te"); DumpSortKey ("cot\u00E9"); */ }
void Run() { LastIndexOf("\u30D1\u30FC", "\u30A2", CompareOptions.IgnoreNonSpace); return; /* * DumpSortKey ("AE"); * DumpSortKey ("\u00C6"); * DumpSortKey ("ABCABC", 5, 1, CompareOptions.IgnoreCase); * DumpSortKey ("-"); * DumpSortKey ("--"); * DumpSortKey ("A-B-C"); * DumpSortKey ("A\u0304"); * DumpSortKey ("\u0100"); * * Compare ("1", "2"); * Compare ("A", "a"); * Compare ("A", "a", CompareOptions.IgnoreCase); * Compare ("\uFF10", "0", CompareOptions.IgnoreWidth); * Compare ("\uFF21", "a", CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); * Compare ("12", "1"); * Compare ("AE", "\u00C6"); * Compare ("AB\u01c0C", "A\u01c0B\u01c0C", CompareOptions.IgnoreSymbols); * Compare ("A\u0304", "\u0100"); // diacritical weight addition * Compare ("ABCABC", 5, 1, "c", 0, 1, CompareOptions.IgnoreCase); * Compare ("-d:NET_1_1", 0, 1, "-", 0, 1, CompareOptions.None); * * IndexOf ("ABC", '1', CompareOptions.None); * IndexOf ("ABCABC", 'c', CompareOptions.IgnoreCase); * IndexOf ("ABCABC", '\uFF22', CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); * IndexOf ("ABCDE", '\u0117', CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); * IndexOf ("ABCABC", 'B', 1, 5, CompareOptions.IgnoreCase); * IndexOf ("\u00E6", 'a', CompareOptions.None); * * LastIndexOf ("ABC", '1', CompareOptions.None); * LastIndexOf ("ABCABC", 'c', CompareOptions.IgnoreCase); * LastIndexOf ("ABCABC", '\uFF22', CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); * LastIndexOf ("ABCDE", '\u0117', CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); * * IsPrefix ("ABC", "c", CompareOptions.IgnoreCase); * IsPrefix ("BC", "c", CompareOptions.IgnoreCase); * IsPrefix ("C", "c", CompareOptions.IgnoreCase); * IsPrefix ("EDCBA", "\u0117", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); * IsPrefix ("ABC", "AB", CompareOptions.IgnoreCase); * IsPrefix ("ae", "\u00E6", CompareOptions.None); * IsPrefix ("\u00E6", "ae", CompareOptions.None); * IsPrefix ("\u00E6", "a", CompareOptions.None); * IsPrefix ("\u00E6s", "ae", CompareOptions.None); * IsPrefix ("\u00E6", "aes", CompareOptions.None); * IsPrefix ("--start", "--", CompareOptions.None); * IsPrefix ("-d:NET_1_1", "-", CompareOptions.None); * IsPrefix ("-d:NET_1_1", "@", CompareOptions.None); * * IsSuffix ("ABC", "c", CompareOptions.IgnoreCase); * IsSuffix ("BC", "c", CompareOptions.IgnoreCase); * IsSuffix ("CBA", "c", CompareOptions.IgnoreCase); * IsSuffix ("ABCDE", "\u0117", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); * IsSuffix ("\u00E6", "a", CompareOptions.None); * IsSuffix ("\u00E6", "e", CompareOptions.None); * IsSuffix ("\u00E6", "ae", CompareOptions.None); * IsSuffix ("ae", "\u00E6", CompareOptions.None); * IsSuffix ("e", "\u00E6", CompareOptions.None); * * IndexOf ("ABC", "1", CompareOptions.None); * IndexOf ("ABCABC", "c", CompareOptions.IgnoreCase); * IndexOf ("ABCABC", "\uFF22", CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); * IndexOf ("ABCDE", "\u0117", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); * IndexOf ("ABCABC", "BC", CompareOptions.IgnoreCase); * IndexOf ("BBCBBC", "BC", CompareOptions.IgnoreCase); * IndexOf ("ABCDEF", "BCD", 0, 3, CompareOptions.IgnoreCase); * IndexOf ("-ABC", "-", CompareOptions.None); * IndexOf ("--ABC", "--", CompareOptions.None); * * LastIndexOf ("ABC", "1", CompareOptions.None); * LastIndexOf ("ABCABC", "c", CompareOptions.IgnoreCase); * LastIndexOf ("ABCABC", "\uFF22", CompareOptions.IgnoreCase | CompareOptions.IgnoreWidth); * LastIndexOf ("ABCDE", "\u0117", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase); * LastIndexOf ("ABCABC", "BC", CompareOptions.IgnoreCase); * LastIndexOf ("BBCBBC", "BC", CompareOptions.IgnoreCase); * LastIndexOf ("original", "rig", CompareOptions.None); * LastIndexOf ("\u00E6", "ae", CompareOptions.None); * LastIndexOf ("-ABC", "-", CompareOptions.None); * LastIndexOf ("--ABC", "--", CompareOptions.None); */ coll = new SimpleCollator(new CultureInfo("hu")); DumpSortKey("ZSAZS1"); IsSuffix("zs", "z", CompareOptions.None); IsSuffix("zs", "s", CompareOptions.None); IsSuffix("zs", "zs", CompareOptions.None); IsSuffix("sz", "z", CompareOptions.None); IsSuffix("sz", "s", CompareOptions.None); IsSuffix("--ABC", "--", CompareOptions.None); IsSuffix("ABC--", "--", CompareOptions.None); /* * coll = new SimpleCollator (new CultureInfo ("")); * Compare ("c\u00F4te", "cot\u00E9"); * DumpSortKey ("c\u00F4te"); * DumpSortKey ("cot\u00E9"); * coll = new SimpleCollator (new CultureInfo ("fr")); * Compare ("c\u00F4te", "cot\u00E9"); * DumpSortKey ("c\u00F4te"); * DumpSortKey ("cot\u00E9"); */ }