/// <summary> /// Update the set of unhandled characters for the specified breakType to include /// all that have the same script as <paramref name="c"/>. /// May be called concurrently with <see cref="Handles(int, int)"/> or <see cref="FindBreaks(CharacterIterator, int, int, int, DictionaryBreakEngine.DequeI)"/>. /// Must not be called concurrently with itself. /// </summary> public void HandleChar(int c, int breakType) { if (breakType >= 0 && breakType < fHandled.Length && c != CharacterIteration.Done32) { UnicodeSet originalSet = fHandled[breakType]; if (!originalSet.Contains(c)) { int script = UChar.GetIntPropertyValue(c, UProperty.Script); UnicodeSet newSet = new UnicodeSet(); newSet.ApplyInt32PropertyValue(UProperty.Script, script); newSet.AddAll(originalSet); fHandled[breakType] = newSet; } } }