| Index: xfa/fgas/layout/fgas_textbreak.cpp
|
| diff --git a/xfa/fgas/layout/fgas_textbreak.cpp b/xfa/fgas/layout/fgas_textbreak.cpp
|
| index 4b4ef1fa7bd6d1a17515981811f5da556f8484af..6f018b3c251da152ce0651f0058b602631f317d5 100644
|
| --- a/xfa/fgas/layout/fgas_textbreak.cpp
|
| +++ b/xfa/fgas/layout/fgas_textbreak.cpp
|
| @@ -1194,15 +1194,10 @@ int32_t CFX_TxtBreak::GetDisplayPos(const FX_TXTRUN* pTxtRun,
|
| FX_BOOL bVerticalDoc = (dwStyles & FX_TXTLAYOUTSTYLE_VerticalLayout) != 0;
|
| FX_BOOL bVerticalChar = (dwStyles & FX_TXTLAYOUTSTYLE_VerticalChars) != 0;
|
| int32_t iRotation = GetLineRotation(dwStyles) + pTxtRun->iCharRotation;
|
| - int32_t iCharRotation;
|
| - FX_WCHAR wch, wPrev = 0xFEFF, wNext, wForm, wLast = 0xFEFF;
|
| - int32_t iWidth, iCharWidth, iCharHeight;
|
| FX_FLOAT fX, fY, fCharWidth, fCharHeight;
|
| int32_t iHorScale = pTxtRun->iHorizontalScale;
|
| int32_t iVerScale = pTxtRun->iVerticalScale;
|
| FX_BOOL bSkipSpace = pTxtRun->bSkipSpace;
|
| - FX_BOOL bEmptyChar, bShadda = FALSE, bLam = FALSE;
|
| - uint32_t dwProps, dwCharType;
|
| FX_FORMCHAR formChars[3];
|
| FX_FLOAT fYBase;
|
| fX = rtText.left;
|
| @@ -1217,8 +1212,17 @@ int32_t CFX_TxtBreak::GetDisplayPos(const FX_TXTRUN* pTxtRun,
|
| fYBase = rtText.top + (rtText.height - fFontSize) / 2.0f;
|
| fY = fYBase + fAscent;
|
| }
|
| - int32_t iCount = 0, iNext, iForms;
|
| + int32_t iCount = 0;
|
| + int32_t iNext = 0;
|
| + FX_WCHAR wPrev = 0xFEFF;
|
| + FX_WCHAR wNext = 0xFEFF;
|
| + FX_WCHAR wForm = 0xFEFF;
|
| + FX_WCHAR wLast = 0xFEFF;
|
| + FX_BOOL bShadda = FALSE;
|
| + FX_BOOL bLam = FALSE;
|
| for (int32_t i = 0; i <= iLength; i++) {
|
| + int32_t iWidth;
|
| + FX_WCHAR wch;
|
| if (pAccess != NULL) {
|
| wch = pAccess->GetChar(pIdentity, i);
|
| iWidth = pAccess->GetWidth(pIdentity, i);
|
| @@ -1226,8 +1230,8 @@ int32_t CFX_TxtBreak::GetDisplayPos(const FX_TXTRUN* pTxtRun,
|
| wch = *pStr++;
|
| iWidth = *pWidths++;
|
| }
|
| - dwProps = FX_GetUnicodeProperties(wch);
|
| - dwCharType = (dwProps & FX_CHARTYPEBITSMASK);
|
| + uint32_t dwProps = FX_GetUnicodeProperties(wch);
|
| + uint32_t dwCharType = (dwProps & FX_CHARTYPEBITSMASK);
|
| if (dwCharType == FX_CHARTYPE_ArabicAlef && iWidth == 0) {
|
| wPrev = 0xFEFF;
|
| wLast = wch;
|
| @@ -1340,17 +1344,17 @@ int32_t CFX_TxtBreak::GetDisplayPos(const FX_TXTRUN* pTxtRun,
|
| bLam = FALSE;
|
| }
|
| dwProps = FX_GetUnicodeProperties(wForm);
|
| - iCharRotation = iRotation;
|
| + int32_t iCharRotation = iRotation;
|
| if (bVerticalChar && (dwProps & 0x8000) != 0) {
|
| iCharRotation++;
|
| }
|
| iCharRotation %= 4;
|
| - bEmptyChar =
|
| + FX_BOOL bEmptyChar =
|
| (dwCharType >= FX_CHARTYPE_Tab && dwCharType <= FX_CHARTYPE_Control);
|
| if (wForm == 0xFEFF) {
|
| bEmptyChar = TRUE;
|
| }
|
| - iForms = bLam ? 3 : 1;
|
| + int32_t iForms = bLam ? 3 : 1;
|
| iCount += (bEmptyChar && bSkipSpace) ? 0 : iForms;
|
| if (pCharPos == NULL) {
|
| if (iWidth > 0) {
|
| @@ -1359,7 +1363,7 @@ int32_t CFX_TxtBreak::GetDisplayPos(const FX_TXTRUN* pTxtRun,
|
| wLast = wch;
|
| continue;
|
| }
|
| - iCharWidth = iWidth;
|
| + int32_t iCharWidth = iWidth;
|
| if (iCharWidth < 0) {
|
| iCharWidth = -iCharWidth;
|
| }
|
| @@ -1394,6 +1398,7 @@ int32_t CFX_TxtBreak::GetDisplayPos(const FX_TXTRUN* pTxtRun,
|
| *pWSForms += wForm;
|
| }
|
| }
|
| + int32_t iCharHeight;
|
| if (bVerticalDoc) {
|
| iCharHeight = iCharWidth;
|
| iCharWidth = 1000;
|
|
|