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

Side by Side Diff: core/src/fxcrt/fx_unicode.cpp

Issue 1398383002: core/ difference with XFA (for information only). (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: 2015-11-24 version Created 5 years 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
« no previous file with comments | « core/src/fxcrt/fx_extension.cpp ('k') | core/src/fxge/dib/fx_dib_convert.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/include/fxcrt/fx_ucd.h" 7 #include "core/include/fxcrt/fx_ucd.h"
8 8
9 FX_DWORD FX_GetUnicodeProperties(FX_WCHAR wch) { 9 FX_DWORD FX_GetUnicodeProperties(FX_WCHAR wch) {
10 size_t idx = static_cast<size_t>(wch); 10 size_t idx = static_cast<size_t>(wch);
11 if (idx < kTextLayoutCodePropertiesSize) 11 if (idx < kTextLayoutCodePropertiesSize)
12 return kTextLayoutCodeProperties[(FX_WORD)wch]; 12 return kTextLayoutCodeProperties[(FX_WORD)wch];
13 return 0; 13 return 0;
14 } 14 }
15 15
16 #ifdef PDF_ENABLE_XFA
17 FX_BOOL FX_IsCtrlCode(FX_WCHAR ch) {
18 FX_DWORD dwRet = (FX_GetUnicodeProperties(ch) & FX_CHARTYPEBITSMASK);
19 return dwRet == FX_CHARTYPE_Tab || dwRet == FX_CHARTYPE_Control;
20 }
21
22 #endif
16 FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch, FX_BOOL bRTL, FX_BOOL bVertical) { 23 FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch, FX_BOOL bRTL, FX_BOOL bVertical) {
17 FX_DWORD dwProps = FX_GetUnicodeProperties(wch); 24 FX_DWORD dwProps = FX_GetUnicodeProperties(wch);
18 FX_DWORD dwTemp = (dwProps & 0xFF800000); 25 FX_DWORD dwTemp = (dwProps & 0xFF800000);
19 if (bRTL && dwTemp < 0xFF800000) { 26 if (bRTL && dwTemp < 0xFF800000) {
20 size_t idx = dwTemp >> 23; 27 size_t idx = dwTemp >> 23;
21 if (idx < kFXTextLayoutBidiMirrorSize) { 28 if (idx < kFXTextLayoutBidiMirrorSize) {
22 wch = kFXTextLayoutBidiMirror[idx]; 29 wch = kFXTextLayoutBidiMirror[idx];
23 dwProps = FX_GetUnicodeProperties(wch); 30 dwProps = FX_GetUnicodeProperties(wch);
24 } 31 }
25 } 32 }
26 if (bVertical) { 33 if (bVertical) {
27 dwTemp = (dwProps & 0x007E0000); 34 dwTemp = (dwProps & 0x007E0000);
28 if (dwTemp < 0x007E0000) { 35 if (dwTemp < 0x007E0000) {
29 size_t idx = dwTemp >> 17; 36 size_t idx = dwTemp >> 17;
30 if (idx < kFXTextLayoutVerticalMirrorSize) 37 if (idx < kFXTextLayoutVerticalMirrorSize)
31 wch = kFXTextLayoutVerticalMirror[idx]; 38 wch = kFXTextLayoutVerticalMirror[idx];
32 } 39 }
33 } 40 }
34 return wch; 41 return wch;
35 } 42 }
43 #ifdef PDF_ENABLE_XFA
44
45 FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch,
46 FX_DWORD dwProps,
47 FX_BOOL bRTL,
48 FX_BOOL bVertical) {
49 FX_DWORD dwTemp = (dwProps & 0xFF800000);
50 if (bRTL && dwTemp < 0xFF800000) {
51 size_t idx = dwTemp >> 23;
52 if (idx < kFXTextLayoutBidiMirrorSize) {
53 wch = kFXTextLayoutBidiMirror[idx];
54 dwProps = FX_GetUnicodeProperties(wch);
55 }
56 }
57 if (bVertical) {
58 dwTemp = (dwProps & 0x007E0000);
59 if (dwTemp < 0x007E0000) {
60 size_t idx = dwTemp >> 17;
61 if (idx < kFXTextLayoutVerticalMirrorSize)
62 wch = kFXTextLayoutVerticalMirror[idx];
63 }
64 }
65 return wch;
66 }
67 #endif
OLDNEW
« no previous file with comments | « core/src/fxcrt/fx_extension.cpp ('k') | core/src/fxge/dib/fx_dib_convert.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698