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

Side by Side Diff: xfa/src/fgas/src/layout/fx_linebreak.cpp

Issue 1409223002: fxcrt convergence - XFA side. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Stray file. Created 5 years, 2 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 // 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 "../fgas_base.h" 7 #include "../fgas_base.h"
8 extern const FX_DWORD gs_FX_TextLayout_CodeProperties[65536]; 8
9 extern const FX_LINEBREAKTYPE gs_FX_LineBreak_PairTable[64][32] = { 9 extern const FX_LINEBREAKTYPE gs_FX_LineBreak_PairTable[64][32] = {
10 {FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, 10 {FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB,
11 FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, 11 FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB,
12 FX_LBPB, FX_LBPB, FX_LBPB, FX_LBCP, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, 12 FX_LBPB, FX_LBPB, FX_LBPB, FX_LBCP, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB,
13 FX_LBPB, FX_LBPB, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN}, 13 FX_LBPB, FX_LBPB, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN},
14 {FX_LBDB, FX_LBPB, FX_LBIB, FX_LBIB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB, 14 {FX_LBDB, FX_LBPB, FX_LBIB, FX_LBIB, FX_LBPB, FX_LBPB, FX_LBPB, FX_LBPB,
15 FX_LBIB, FX_LBIB, FX_LBDB, FX_LBDB, FX_LBDB, FX_LBDB, FX_LBIB, FX_LBIB, 15 FX_LBIB, FX_LBIB, FX_LBDB, FX_LBDB, FX_LBDB, FX_LBDB, FX_LBIB, FX_LBIB,
16 FX_LBDB, FX_LBDB, FX_LBPB, FX_LBCB, FX_LBPB, FX_LBDB, FX_LBDB, FX_LBDB, 16 FX_LBDB, FX_LBDB, FX_LBPB, FX_LBCB, FX_LBPB, FX_LBDB, FX_LBDB, FX_LBDB,
17 FX_LBDB, FX_LBDB, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN}, 17 FX_LBDB, FX_LBDB, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN, FX_LBUN},
18 {FX_LBPB, FX_LBPB, FX_LBIB, FX_LBIB, FX_LBIB, FX_LBPB, FX_LBPB, FX_LBPB, 18 {FX_LBPB, FX_LBPB, FX_LBIB, FX_LBIB, FX_LBIB, FX_LBPB, FX_LBPB, FX_LBPB,
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 }; 266 };
267 void FX_GetLineBreakPositions(const FX_WCHAR* pwsText, 267 void FX_GetLineBreakPositions(const FX_WCHAR* pwsText,
268 FX_LINEBREAKTYPE* pBrkType, 268 FX_LINEBREAKTYPE* pBrkType,
269 int32_t iLength) { 269 int32_t iLength) {
270 if (iLength < 2) { 270 if (iLength < 2) {
271 return; 271 return;
272 } 272 }
273 FX_DWORD dwCur, dwNext; 273 FX_DWORD dwCur, dwNext;
274 FX_WCHAR wch; 274 FX_WCHAR wch;
275 wch = *pwsText++; 275 wch = *pwsText++;
276 dwCur = gs_FX_TextLayout_CodeProperties[(FX_WORD)wch] & 0x003F; 276 dwCur = kTextLayoutCodeProperties[(FX_WORD)wch] & 0x003F;
277 iLength--; 277 iLength--;
278 for (int32_t i = 0; i < iLength; i++) { 278 for (int32_t i = 0; i < iLength; i++) {
279 wch = *pwsText++; 279 wch = *pwsText++;
280 dwNext = gs_FX_TextLayout_CodeProperties[(FX_WORD)wch] & 0x003F; 280 dwNext = kTextLayoutCodeProperties[(FX_WORD)wch] & 0x003F;
281 if (dwNext == FX_CBP_SP) { 281 if (dwNext == FX_CBP_SP) {
282 pBrkType[i] = FX_LBT_PROHIBITED_BRK; 282 pBrkType[i] = FX_LBT_PROHIBITED_BRK;
283 } else { 283 } else {
284 pBrkType[i] = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable + 284 pBrkType[i] = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable +
285 (dwCur << 5) + dwNext); 285 (dwCur << 5) + dwNext);
286 } 286 }
287 dwCur = dwNext; 287 dwCur = dwNext;
288 } 288 }
289 pBrkType[iLength] = FX_LBT_INDIRECT_BRK; 289 pBrkType[iLength] = FX_LBT_INDIRECT_BRK;
290 } 290 }
291 void FX_GetLineBreakPositions(const FX_WCHAR* pwsText, 291 void FX_GetLineBreakPositions(const FX_WCHAR* pwsText,
292 int32_t iLength, 292 int32_t iLength,
293 CFX_Int32MassArray& bp) { 293 CFX_Int32MassArray& bp) {
294 if (iLength < 2) { 294 if (iLength < 2) {
295 return; 295 return;
296 } 296 }
297 FX_LINEBREAKTYPE eType; 297 FX_LINEBREAKTYPE eType;
298 FX_DWORD dwCur, dwNext; 298 FX_DWORD dwCur, dwNext;
299 FX_WCHAR wch; 299 FX_WCHAR wch;
300 wch = *pwsText++; 300 wch = *pwsText++;
301 dwCur = gs_FX_TextLayout_CodeProperties[(FX_WORD)wch] & 0x003F; 301 dwCur = kTextLayoutCodeProperties[(FX_WORD)wch] & 0x003F;
302 iLength--; 302 iLength--;
303 for (int32_t i = 0; i < iLength; i++) { 303 for (int32_t i = 0; i < iLength; i++) {
304 wch = *pwsText++; 304 wch = *pwsText++;
305 dwNext = gs_FX_TextLayout_CodeProperties[(FX_WORD)wch] & 0x003F; 305 dwNext = kTextLayoutCodeProperties[(FX_WORD)wch] & 0x003F;
306 if (dwNext == FX_CBP_SP) { 306 if (dwNext == FX_CBP_SP) {
307 eType = FX_LBT_PROHIBITED_BRK; 307 eType = FX_LBT_PROHIBITED_BRK;
308 } else { 308 } else {
309 eType = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable + 309 eType = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable +
310 (dwCur << 5) + dwNext); 310 (dwCur << 5) + dwNext);
311 } 311 }
312 if (eType == FX_LBT_DIRECT_BRK) { 312 if (eType == FX_LBT_DIRECT_BRK) {
313 bp.Add(i); 313 bp.Add(i);
314 } 314 }
315 dwCur = dwNext; 315 dwCur = dwNext;
316 } 316 }
317 } 317 }
OLDNEW
« pdfium.gyp ('K') | « pdfium.gyp ('k') | xfa/src/fgas/src/layout/fx_rtfbreak.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698