OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Lars Knoll <lars@trolltech.com> | 2 * Copyright (C) 2006 Lars Knoll <lars@trolltech.com> |
3 * Copyright (C) 2007, 2011, 2012 Apple Inc. All rights reserved. | 3 * Copyright (C) 2007, 2011, 2012 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 TextBreakIterator* cursorMovementIterator(const UChar* string, int length) | 774 TextBreakIterator* cursorMovementIterator(const UChar* string, int length) |
775 { | 775 { |
776 // This rule set is based on character-break iterator rules of ICU 4.0 | 776 // This rule set is based on character-break iterator rules of ICU 4.0 |
777 // <http://source.icu-project.org/repos/icu/icu/tags/release-4-0/source/data
/brkitr/char.txt>. | 777 // <http://source.icu-project.org/repos/icu/icu/tags/release-4-0/source/data
/brkitr/char.txt>. |
778 // The major differences from the original ones are listed below: | 778 // The major differences from the original ones are listed below: |
779 // * Replaced '[\p{Grapheme_Cluster_Break = SpacingMark}]' with '[\p{General
_Category = Spacing Mark} - $Extend]' for ICU 3.8 or earlier; | 779 // * Replaced '[\p{Grapheme_Cluster_Break = SpacingMark}]' with '[\p{General
_Category = Spacing Mark} - $Extend]' for ICU 3.8 or earlier; |
780 // * Removed rules that prevent a cursor from moving after prepend character
s (Bug 24342); | 780 // * Removed rules that prevent a cursor from moving after prepend character
s (Bug 24342); |
781 // * Added rules that prevent a cursor from moving after virama signs of Ind
ic languages except Tamil (Bug 15790), and; | 781 // * Added rules that prevent a cursor from moving after virama signs of Ind
ic languages except Tamil (Bug 15790), and; |
782 // * Added rules that prevent a cursor from moving before Japanese half-widt
h katakara voiced marks. | 782 // * Added rules that prevent a cursor from moving before Japanese half-widt
h katakara voiced marks. |
783 // * Added rules for regional indicator symbols. | 783 // * Added rules for regional indicator symbols. |
784 static const char* kRules = | 784 static const char* const kRules = |
785 "$CR = [\\p{Grapheme_Cluster_Break = CR}];" | 785 "$CR = [\\p{Grapheme_Cluster_Break = CR}];" |
786 "$LF = [\\p{Grapheme_Cluster_Break = LF}];" | 786 "$LF = [\\p{Grapheme_Cluster_Break = LF}];" |
787 "$Control = [\\p{Grapheme_Cluster_Break = Control}];" | 787 "$Control = [\\p{Grapheme_Cluster_Break = Control}];" |
788 "$VoiceMarks = [\\uFF9E\\uFF9F];" // Japanese half-width katakana voice
d marks | 788 "$VoiceMarks = [\\uFF9E\\uFF9F];" // Japanese half-width katakana voice
d marks |
789 "$Extend = [\\p{Grapheme_Cluster_Break = Extend} $VoiceMarks - [\\u0E30
\\u0E32 \\u0E45 \\u0EB0 \\u0EB2]];" | 789 "$Extend = [\\p{Grapheme_Cluster_Break = Extend} $VoiceMarks - [\\u0E30
\\u0E32 \\u0E45 \\u0EB0 \\u0EB2]];" |
790 "$SpacingMark = [[\\p{General_Category = Spacing Mark}] - $Extend];" | 790 "$SpacingMark = [[\\p{General_Category = Spacing Mark}] - $Extend];" |
791 "$L = [\\p{Grapheme_Cluster_Break = L}];" | 791 "$L = [\\p{Grapheme_Cluster_Break = L}];" |
792 "$V = [\\p{Grapheme_Cluster_Break = V}];" | 792 "$V = [\\p{Grapheme_Cluster_Break = V}];" |
793 "$T = [\\p{Grapheme_Cluster_Break = T}];" | 793 "$T = [\\p{Grapheme_Cluster_Break = T}];" |
794 "$LV = [\\p{Grapheme_Cluster_Break = LV}];" | 794 "$LV = [\\p{Grapheme_Cluster_Break = LV}];" |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
853 "$Tel1 $TelV $Tel0;" // Telugu Virama (backward) | 853 "$Tel1 $TelV $Tel0;" // Telugu Virama (backward) |
854 "$Kan1 $KanV $Kan0;" // Kannada Virama (backward) | 854 "$Kan1 $KanV $Kan0;" // Kannada Virama (backward) |
855 "$Mal1 $MalV $Mal0;" // Malayalam Virama (backward) | 855 "$Mal1 $MalV $Mal0;" // Malayalam Virama (backward) |
856 "!!safe_reverse;" | 856 "!!safe_reverse;" |
857 "!!safe_forward;"; | 857 "!!safe_forward;"; |
858 | 858 |
859 return setUpIteratorWithRules(kRules, string, length); | 859 return setUpIteratorWithRules(kRules, string, length); |
860 } | 860 } |
861 | 861 |
862 } | 862 } |
OLD | NEW |