Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: Source/core/editing/commands/SmartReplaceICU.cpp

Issue 1294543005: Move execCommand related files in core/editing/ related files into core/editing/commands/ (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 2015-08-17T17:57:33 Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Tony Chang <idealisms@gmail.com> 3 * Copyright (C) 2008 Tony Chang <idealisms@gmail.com>
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 10 matching lines...) Expand all
21 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */ 28 */
29 29
30 #include "config.h" 30 #include "config.h"
31 #include "core/editing/SmartReplace.h" 31 #include "core/editing/commands/SmartReplace.h"
32 32
33 #if !USE(CF) 33 #if !USE(CF)
34 #include "wtf/Assertions.h" 34 #include "wtf/Assertions.h"
35 #include "wtf/text/WTFString.h" 35 #include "wtf/text/WTFString.h"
36 #include <unicode/uset.h> 36 #include <unicode/uset.h>
37 37
38 namespace blink { 38 namespace blink {
39 39
40 static void addAllCodePoints(USet* smartSet, const String& string) 40 static void addAllCodePoints(USet* smartSet, const String& string)
41 { 41 {
42 for (size_t i = 0; i < string.length(); i++) 42 for (size_t i = 0; i < string.length(); i++)
43 uset_add(smartSet, string[i]); 43 uset_add(smartSet, string[i]);
44 } 44 }
45 45
46 // This is mostly a port of the code in WebCore/editing/SmartReplaceCF.cpp 46 // This is mostly a port of the code in WebCore/editing/SmartReplaceCF.cpp
47 // except we use icu in place of CoreFoundations character classes. 47 // except we use icu in place of CoreFoundations character classes.
48 static USet* getSmartSet(bool isPreviousCharacter) 48 static USet* getSmartSet(bool isPreviousCharacter)
49 { 49 {
50 static USet* preSmartSet = NULL; 50 static USet* preSmartSet = nullptr;
51 static USet* postSmartSet = NULL; 51 static USet* postSmartSet = nullptr;
52 USet* smartSet = isPreviousCharacter ? preSmartSet : postSmartSet; 52 USet* smartSet = isPreviousCharacter ? preSmartSet : postSmartSet;
53 if (!smartSet) { 53 if (!smartSet) {
54 // Whitespace and newline (kCFCharacterSetWhitespaceAndNewline) 54 // Whitespace and newline (kCFCharacterSetWhitespaceAndNewline)
55 UErrorCode ec = U_ZERO_ERROR; 55 UErrorCode ec = U_ZERO_ERROR;
56 String whitespaceAndNewline("[[:WSpace:] [\\u000A\\u000B\\u000C\\u000D\\ u0085]]"); 56 String whitespaceAndNewline("[[:WSpace:] [\\u000A\\u000B\\u000C\\u000D\\ u0085]]");
57 smartSet = uset_openPattern(whitespaceAndNewline.charactersWithNullTermi nation().data(), whitespaceAndNewline.length(), &ec); 57 smartSet = uset_openPattern(whitespaceAndNewline.charactersWithNullTermi nation().data(), whitespaceAndNewline.length(), &ec);
58 ASSERT(U_SUCCESS(ec)); 58 ASSERT(U_SUCCESS(ec));
59 59
60 // CJK ranges 60 // CJK ranges
61 uset_addRange(smartSet, 0x1100, 0x1100 + 256); // Hangul Jamo (0x1100 - 0x11FF) 61 uset_addRange(smartSet, 0x1100, 0x1100 + 256); // Hangul Jamo (0x1100 - 0x11FF)
(...skipping 28 matching lines...) Expand all
90 } 90 }
91 91
92 bool isCharacterSmartReplaceExempt(UChar32 c, bool isPreviousCharacter) 92 bool isCharacterSmartReplaceExempt(UChar32 c, bool isPreviousCharacter)
93 { 93 {
94 return uset_contains(getSmartSet(isPreviousCharacter), c); 94 return uset_contains(getSmartSet(isPreviousCharacter), c);
95 } 95 }
96 96
97 } 97 }
98 98
99 #endif // !USE(CF) 99 #endif // !USE(CF)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698