OLD | NEW |
---|---|
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 "xfa/fgas/layout/fgas_rtfbreak.h" | 7 #include "xfa/fgas/layout/fgas_rtfbreak.h" |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 972 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
983 while (iLength >= 0) { | 983 while (iLength >= 0) { |
984 pCur = pCharArray + iLength; | 984 pCur = pCharArray + iLength; |
985 nCodeProp = pCur->m_dwCharProps; | 985 nCodeProp = pCur->m_dwCharProps; |
986 nCur = nCodeProp & 0x003F; | 986 nCur = nCodeProp & 0x003F; |
987 FX_BOOL bNeedBreak = FALSE; | 987 FX_BOOL bNeedBreak = FALSE; |
988 if (nCur == FX_CBP_SP) { | 988 if (nCur == FX_CBP_SP) { |
989 bNeedBreak = !bSpaceBreak; | 989 bNeedBreak = !bSpaceBreak; |
990 if (nNext == FX_CBP_SP) { | 990 if (nNext == FX_CBP_SP) { |
991 eType = bSpaceBreak ? FX_LBT_DIRECT_BRK : FX_LBT_PROHIBITED_BRK; | 991 eType = bSpaceBreak ? FX_LBT_DIRECT_BRK : FX_LBT_PROHIBITED_BRK; |
992 } else { | 992 } else { |
993 eType = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable + | 993 eType = gs_FX_LineBreak_PairTable[nCur][nNext]; |
994 (nCur << 5) + nNext); | |
995 } | 994 } |
996 } else if (nCur == FX_CBP_TB) { | 995 } else if (nCur == FX_CBP_TB) { |
Lei Zhang
2016/06/10 21:40:47
This block looks identical to the one above. Merge
Tom Sepez
2016/06/10 21:56:57
Not quite. One sets bNeedBreak to !bSpaceBreak an
| |
997 bNeedBreak = !bTabBreak; | 996 bNeedBreak = !bTabBreak; |
998 if (nNext == FX_CBP_TB) { | 997 if (nNext == FX_CBP_TB) { |
999 eType = bTabBreak ? FX_LBT_DIRECT_BRK : FX_LBT_PROHIBITED_BRK; | 998 eType = bTabBreak ? FX_LBT_DIRECT_BRK : FX_LBT_PROHIBITED_BRK; |
1000 } else { | 999 } else { |
1001 eType = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable + | 1000 eType = gs_FX_LineBreak_PairTable[nCur][nNext]; |
1002 (nCur << 5) + nNext); | |
1003 } | 1001 } |
1004 } else if (bNumberBreak && nCur == FX_CBP_NU && nNext == FX_CBP_NU) { | 1002 } else if (bNumberBreak && nCur == FX_CBP_NU && nNext == FX_CBP_NU) { |
1005 eType = FX_LBT_DIRECT_BRK; | 1003 eType = FX_LBT_DIRECT_BRK; |
1006 } else if (bInfixBreak && nCur == FX_CBP_IS && nNext == FX_CBP_IS) { | 1004 } else if (bInfixBreak && nCur == FX_CBP_IS && nNext == FX_CBP_IS) { |
Lei Zhang
2016/06/10 21:40:47
Merge with the one above.
Tom Sepez
2016/06/10 21:56:57
Done.
| |
1007 eType = FX_LBT_DIRECT_BRK; | 1005 eType = FX_LBT_DIRECT_BRK; |
1008 } else { | 1006 } else { |
1009 if (nNext == FX_CBP_SP) { | 1007 if (nNext == FX_CBP_SP) { |
1010 eType = FX_LBT_PROHIBITED_BRK; | 1008 eType = FX_LBT_PROHIBITED_BRK; |
1011 } else { | 1009 } else { |
1012 eType = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable + | 1010 eType = gs_FX_LineBreak_PairTable[nCur][nNext]; |
1013 (nCur << 5) + nNext); | |
1014 } | 1011 } |
1015 } | 1012 } |
1016 if (bAllChars) { | 1013 if (bAllChars) { |
1017 pCur->m_nBreakType = eType; | 1014 pCur->m_nBreakType = eType; |
1018 } | 1015 } |
1019 if (!bOnlyBrk) { | 1016 if (!bOnlyBrk) { |
1020 iCharWidth = pCur->m_iCharWidth; | 1017 iCharWidth = pCur->m_iCharWidth; |
1021 FX_BOOL bBreak = FALSE; | 1018 FX_BOOL bBreak = FALSE; |
1022 if (nCur == FX_CBP_TB && bTabBreak) { | 1019 if (nCur == FX_CBP_TB && bTabBreak) { |
1023 bBreak = iCharWidth > 0 && iEndPos - iCharWidth <= m_iBoundaryEnd; | 1020 bBreak = iCharWidth > 0 && iEndPos - iCharWidth <= m_iBoundaryEnd; |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1513 rtBBoxF.height = fHeight; | 1510 rtBBoxF.height = fHeight; |
1514 rtBBoxF.top = std::max(rtBBoxF.top, 0.0f); | 1511 rtBBoxF.top = std::max(rtBBoxF.top, 0.0f); |
1515 } | 1512 } |
1516 rtArray.SetAt(i, rtBBoxF); | 1513 rtArray.SetAt(i, rtBBoxF); |
1517 continue; | 1514 continue; |
1518 } | 1515 } |
1519 rtArray.SetAt(i, rect); | 1516 rtArray.SetAt(i, rect); |
1520 } | 1517 } |
1521 return iLength; | 1518 return iLength; |
1522 } | 1519 } |
OLD | NEW |